udev: fix match expression to Focusrite Saffire Pro i/o series for ignorance
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Sun, 30 May 2021 04:09:44 +0000 (13:09 +0900)
committerTakashi Sakamoto <o-takashi@sakamocchi.jp>
Sun, 30 May 2021 04:22:29 +0000 (13:22 +0900)
It seems that in sound context environment variable is not available for
match expression.

This commit utilizes walkthrough to refer to attributes in fw node. The
combination of vendor, model, units is enough to match the node since
the attributes of fw unit doesn't have vendor.

Fix: 37358e42c49a ("alsa: Suppress udev detection of sound card for some units on IEEE 1394 bus")
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/566>

src/modules/alsa/90-pulseaudio.rules

index 4c0cb3d..ff19d15 100644 (file)
@@ -174,13 +174,15 @@ GOTO="pulseaudio_end"
 
 LABEL="pulseaudio_firewire_quirk"
 
-# Focusrite Saffire Pro 10/26 i/o has a quirk to disappear from IEEE 1394 bus when losing connections.
-# https://bugzilla.kernel.org/show_bug.cgi?id=199365
-ENV{ID_VENDOR_ID}=="0x00130e", ENV{ID_MODEL_ID}=="0x000003", ENV{PULSE_IGNORE}="1"
-# Both of Saffire Pro 10 i/o and Liquid Saffire 56 have the same ID_MODEL_ID
-# (0x000006), but Liquid Saffire 56 doesn't suffer from the problem, so we
-# can't use ID_MODEL_ID to identify the problematic card. ID_MODEL works
-# better here.
-ENV{ID_VENDOR_ID}=="0x00130e", ENV{ID_MODEL}=="Pro10IO" ENV{PULSE_IGNORE}="1"
+# Focusrite Saffire Pro 10 i/o and Pro 26 i/o have a quirk to disappear from
+# IEEE 1394 bus when breaking connections. This brings an issue for PulseAudio
+# to continue the routine for ever that:
+# - detecting sound card
+# - starting PCM substream
+# - stopping the PCM substream
+# - the card disappears
+# - the card appears
+# In detail, see: https://bugzilla.kernel.org/show_bug.cgi?id=199365
+ATTRS{vendor}=="0x00130e", ATTRS{model}=="0x00000[36]", ATTRS{units}=="0x00a02d:0x010001", ENV{PULSE_IGNORE}="1"
 
 LABEL="pulseaudio_end"