[PATCH] ALSA: usb-audio: Skip setting clock selector for single connections
Since commit 086b957cc17f5 ("ALSA: usb-audio: Skip the clock selector inquiry for single connections") we are already skipping clock selector inquiry if only one clock source is connected, but we are still sending a set request. Lets skip that too.
This should fix errors when setting a sample rate on devices that don't have any controls present within the clock selector. An example of such device is the new revision of MOTU M Series (07fd:000b):
AudioControl Interface Descriptor: bLength 8 bDescriptorType 36 bDescriptorSubtype 11 (CLOCK_SELECTOR) bClockID 1 bNrInPins 1 baCSourceID(0) 2 bmControls 0x00 iClockSelector 0
Perhaps we also should check if clock selectors are readable and writeable like we already do for clock sources, but this is out of scope of this patch.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=217601 Signed-off-by: Alexander Tsoy alexander@tsoy.me --- sound/usb/clock.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sound/usb/clock.c b/sound/usb/clock.c index 33db334e6556..94e4aaeafe58 100644 --- a/sound/usb/clock.c +++ b/sound/usb/clock.c @@ -325,7 +325,8 @@ static int __uac_clock_find_source(struct snd_usb_audio *chip, visited, validate); if (ret > 0) { /* Skip setting clock selector again for some devices */ - if (chip->quirk_flags & QUIRK_FLAG_SKIP_CLOCK_SELECTOR) + if (chip->quirk_flags & QUIRK_FLAG_SKIP_CLOCK_SELECTOR || + pins == 1) return ret; err = uac_clock_selector_set_val(chip, entity_id, cur); if (err < 0)
On Tue, 23 Jan 2024 14:46:35 +0100, Alexander Tsoy wrote:
Since commit 086b957cc17f5 ("ALSA: usb-audio: Skip the clock selector inquiry for single connections") we are already skipping clock selector inquiry if only one clock source is connected, but we are still sending a set request. Lets skip that too.
This should fix errors when setting a sample rate on devices that don't have any controls present within the clock selector. An example of such device is the new revision of MOTU M Series (07fd:000b):
AudioControl Interface Descriptor: bLength 8 bDescriptorType 36 bDescriptorSubtype 11 (CLOCK_SELECTOR) bClockID 1 bNrInPins 1 baCSourceID(0) 2 bmControls 0x00 iClockSelector 0
Perhaps we also should check if clock selectors are readable and writeable like we already do for clock sources, but this is out of scope of this patch.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=217601 Signed-off-by: Alexander Tsoy alexander@tsoy.me
Thanks, applied.
Takashi
В Вт, 23/01/2024 в 15:14 +0100, Takashi Iwai пишет:
On Tue, 23 Jan 2024 14:46:35 +0100, Alexander Tsoy wrote:
Since commit 086b957cc17f5 ("ALSA: usb-audio: Skip the clock selector inquiry for single connections") we are already skipping clock selector inquiry if only one clock source is connected, but we are still sending a set request. Lets skip that too.
This should fix errors when setting a sample rate on devices that don't have any controls present within the clock selector. An example of such device is the new revision of MOTU M Series (07fd:000b):
AudioControl Interface Descriptor: bLength 8 bDescriptorType 36 bDescriptorSubtype 11 (CLOCK_SELECTOR) bClockID 1 bNrInPins 1 baCSourceID(0) 2 bmControls 0x00 iClockSelector 0
Perhaps we also should check if clock selectors are readable and writeable like we already do for clock sources, but this is out of scope of this patch.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=217601 Signed-off-by: Alexander Tsoy alexander@tsoy.me
Thanks, applied.
It looks like this patch will bring back problems with Behringer mixers [1]. So we probably should revert. The mentioned case with MOTU M Series should be also covered by "Support read-only clock selector control" commit.
On Sun, 28 Jan 2024 11:35:51 +0100, Alexander Tsoy wrote:
В Вт, 23/01/2024 в 15:14 +0100, Takashi Iwai пишет:
On Tue, 23 Jan 2024 14:46:35 +0100, Alexander Tsoy wrote:
Since commit 086b957cc17f5 ("ALSA: usb-audio: Skip the clock selector inquiry for single connections") we are already skipping clock selector inquiry if only one clock source is connected, but we are still sending a set request. Lets skip that too.
This should fix errors when setting a sample rate on devices that don't have any controls present within the clock selector. An example of such device is the new revision of MOTU M Series (07fd:000b):
AudioControl Interface Descriptor: bLength 8 bDescriptorType 36 bDescriptorSubtype 11 (CLOCK_SELECTOR) bClockID 1 bNrInPins 1 baCSourceID(0) 2 bmControls 0x00 iClockSelector 0
Perhaps we also should check if clock selectors are readable and writeable like we already do for clock sources, but this is out of scope of this patch.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=217601 Signed-off-by: Alexander Tsoy alexander@tsoy.me
Thanks, applied.
It looks like this patch will bring back problems with Behringer mixers [1]. So we probably should revert. The mentioned case with MOTU M Series should be also covered by "Support read-only clock selector control" commit.
OK, care to submit a patch to revert it?
thanks,
Takashi
В Вс, 28/01/2024 в 13:09 +0100, Takashi Iwai пишет:
On Sun, 28 Jan 2024 11:35:51 +0100, Alexander Tsoy wrote:
В Вт, 23/01/2024 в 15:14 +0100, Takashi Iwai пишет:
On Tue, 23 Jan 2024 14:46:35 +0100, Alexander Tsoy wrote:
Since commit 086b957cc17f5 ("ALSA: usb-audio: Skip the clock selector inquiry for single connections") we are already skipping clock selector inquiry if only one clock source is connected, but we are still sending a set request. Lets skip that too.
This should fix errors when setting a sample rate on devices that don't have any controls present within the clock selector. An example of such device is the new revision of MOTU M Series (07fd:000b):
AudioControl Interface Descriptor: bLength 8 bDescriptorType 36 bDescriptorSubtype 11 (CLOCK_SELECTOR) bClockID 1 bNrInPins 1 baCSourceID(0) 2 bmControls 0x00 iClockSelector 0
Perhaps we also should check if clock selectors are readable and writeable like we already do for clock sources, but this is out of scope of this patch.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=217601 Signed-off-by: Alexander Tsoy alexander@tsoy.me
Thanks, applied.
It looks like this patch will bring back problems with Behringer mixers [1]. So we probably should revert. The mentioned case with MOTU M Series should be also covered by "Support read-only clock selector control" commit.
OK, care to submit a patch to revert it?
Sure, done!
participants (2)
-
Alexander Tsoy
-
Takashi Iwai