ALSA: usb-audio: fix control-request direction
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: 93db51d06b
("ALSA: usb-audio: Check valid altsetting at parsing rates for UAC2/3")
Cc: stable@vger.kernel.org # 5.10
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://lore.kernel.org/r/20210521133742.18098-1-johan@kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Родитель
05ca447630
Коммит
51cb8e206a
|
@ -436,7 +436,7 @@ static bool check_valid_altsetting_v2v3(struct snd_usb_audio *chip, int iface,
|
||||||
if (snd_BUG_ON(altsetting >= 64 - 8))
|
if (snd_BUG_ON(altsetting >= 64 - 8))
|
||||||
return false;
|
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,
|
USB_TYPE_CLASS | USB_RECIP_INTERFACE | USB_DIR_IN,
|
||||||
UAC2_AS_VAL_ALT_SETTINGS << 8,
|
UAC2_AS_VAL_ALT_SETTINGS << 8,
|
||||||
iface, &raw_data, sizeof(raw_data));
|
iface, &raw_data, sizeof(raw_data));
|
||||||
|
|
Загрузка…
Ссылка в новой задаче