The direction of the pipe argument must match the request-type direction
bit or control requests may fail depending on the host-controller-driver
implementation.
Fix the UAC2_CS_CUR request which erroneously used usb_sndctrlpipe().
Fixes: 93db51d06b32 ("ALSA: usb-audio: Check valid altsetting at parsing rates for UAC2/3")
Cc: [email protected] # 5.10
Signed-off-by: Johan Hovold <[email protected]>
---
There's a related bug in sound/usb/mixer_scarlett_gen2.c, which
Geoffrey reported and said he was preparing a patch for here:
https://lore.kernel.org/r/[email protected]
Johan
sound/usb/format.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/usb/format.c b/sound/usb/format.c
index e6ff317a6785..2287f8c65315 100644
--- a/sound/usb/format.c
+++ b/sound/usb/format.c
@@ -436,7 +436,7 @@ static bool check_valid_altsetting_v2v3(struct snd_usb_audio *chip, int iface,
if (snd_BUG_ON(altsetting >= 64 - 8))
return false;
- err = snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), UAC2_CS_CUR,
+ err = snd_usb_ctl_msg(dev, usb_rcvctrlpipe(dev, 0), UAC2_CS_CUR,
USB_TYPE_CLASS | USB_RECIP_INTERFACE | USB_DIR_IN,
UAC2_AS_VAL_ALT_SETTINGS << 8,
iface, &raw_data, sizeof(raw_data));
--
2.26.3
On Fri, 21 May 2021 15:37:42 +0200,
Johan Hovold wrote:
>
> The direction of the pipe argument must match the request-type direction
> bit or control requests may fail depending on the host-controller-driver
> implementation.
>
> Fix the UAC2_CS_CUR request which erroneously used usb_sndctrlpipe().
>
> Fixes: 93db51d06b32 ("ALSA: usb-audio: Check valid altsetting at parsing rates for UAC2/3")
> Cc: [email protected] # 5.10
> Signed-off-by: Johan Hovold <[email protected]>
Thanks, applied now.
> ---
>
> There's a related bug in sound/usb/mixer_scarlett_gen2.c, which
> Geoffrey reported and said he was preparing a patch for here:
>
> https://lore.kernel.org/r/[email protected]
Yes, I'm going to apply them now, too.
Takashi