summaryrefslogtreecommitdiff
path: root/media-video/pipewire/files/0.3.82/0001-alsa-Ignore-PCM-devices-with-udev-env-ACP_IGNORE.patch
diff options
context:
space:
mode:
Diffstat (limited to 'media-video/pipewire/files/0.3.82/0001-alsa-Ignore-PCM-devices-with-udev-env-ACP_IGNORE.patch')
-rw-r--r--media-video/pipewire/files/0.3.82/0001-alsa-Ignore-PCM-devices-with-udev-env-ACP_IGNORE.patch69
1 files changed, 0 insertions, 69 deletions
diff --git a/media-video/pipewire/files/0.3.82/0001-alsa-Ignore-PCM-devices-with-udev-env-ACP_IGNORE.patch b/media-video/pipewire/files/0.3.82/0001-alsa-Ignore-PCM-devices-with-udev-env-ACP_IGNORE.patch
deleted file mode 100644
index 12192fc8678a..000000000000
--- a/media-video/pipewire/files/0.3.82/0001-alsa-Ignore-PCM-devices-with-udev-env-ACP_IGNORE.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/fd969dab2878836fd8e9ac7d8fb92d1ede594f37
-
-From fd969dab2878836fd8e9ac7d8fb92d1ede594f37 Mon Sep 17 00:00:00 2001
-From: Hector Martin <marcan@marcan.st>
-Date: Sat, 14 Oct 2023 14:11:15 +0900
-Subject: [PATCH] alsa: Ignore PCM devices with udev env ACP_IGNORE
-
-When checking that a card has all of its PCM devices available, ignore
-any specific device with the ACP_IGNORE udev environment variable. This
-mirrors how we ignore whole cards, but specifically allows non-PipeWire
-software to own specific PCM devices.
-
-Note that this does not actually stop PipeWire from using those
-subdevices right now, we assume UCM configs take care of that. This
-should probably be implemented later to ensure PipeWire always stays
-away from them, but for now this fixes the issue where it refuses to
-probe the entire card.
-
-Fixes: #3570
-
-Signed-off-by: Hector Martin <marcan@marcan.st>
----
- spa/plugins/alsa/alsa-udev.c | 24 ++++++++++++++++++++++++
- 1 file changed, 24 insertions(+)
-
-diff --git a/spa/plugins/alsa/alsa-udev.c b/spa/plugins/alsa/alsa-udev.c
-index 3048d7363..58ff5032d 100644
---- a/spa/plugins/alsa/alsa-udev.c
-+++ b/spa/plugins/alsa/alsa-udev.c
-@@ -329,6 +329,27 @@ static int get_num_compress_offload_devices(unsigned int card_nr)
- return errno != 0 ? -errno : num_dev;
- }
-
-+static int check_udev_environment(struct udev *udev, const char *devname)
-+{
-+ char path[PATH_MAX];
-+ struct udev_device *dev;
-+ int ret = 0;
-+
-+ /* Check for ACP_IGNORE on a specific PCM device (not the whole card) */
-+ spa_scnprintf(path, sizeof(path), "/sys/class/sound/%s", devname);
-+
-+ dev = udev_device_new_from_syspath(udev, path);
-+ if (dev == NULL)
-+ return 0;
-+
-+ if (udev_device_get_property_value(dev, "ACP_IGNORE"))
-+ ret = -ENXIO;
-+
-+ udev_device_unref(dev);
-+
-+ return ret;
-+}
-+
- static int check_pcm_device_availability(struct impl *this, struct card *card,
- int *num_pcm_devices)
- {
-@@ -376,6 +397,9 @@ static int check_pcm_device_availability(struct impl *this, struct card *card,
- card->card_nr, entry->d_name+3);
- if (check_device_pcm_class(path) < 0)
- continue;
-+ /* Check udev environment */
-+ if (check_udev_environment(this->udev, path) < 0)
-+ continue;
-
- /* Check busy status */
- spa_scnprintf(path, sizeof(path), "/proc/asound/card%u/%s",
---
-GitLab