mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 10:01:39 -05:00
ALSA: usb-audio: Reorder USB mode selection quirk
When using mode selection quirk, apply the quirk before rate setting. Also apply this quirk on certain newer ITF interface devices. Signed-off-by: Jussi Laako <jussi@sonarnerd.net> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20251211152224.1780782-2-jussi@sonarnerd.net
This commit is contained in:
committed by
Takashi Iwai
parent
da3a7efff6
commit
7fde61795d
@@ -1481,6 +1481,10 @@ int snd_usb_endpoint_prepare(struct snd_usb_audio *chip,
|
||||
return err;
|
||||
}
|
||||
|
||||
err = snd_usb_select_mode_quirk(chip, ep->cur_audiofmt);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
err = snd_usb_init_pitch(chip, ep->cur_audiofmt);
|
||||
if (err < 0)
|
||||
return err;
|
||||
@@ -1489,10 +1493,6 @@ int snd_usb_endpoint_prepare(struct snd_usb_audio *chip,
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
err = snd_usb_select_mode_quirk(chip, ep->cur_audiofmt);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
/* for UAC2/3, enable the interface altset here at last */
|
||||
if (!iface_first) {
|
||||
err = endpoint_set_interface(chip, ep, true);
|
||||
|
||||
@@ -2221,7 +2221,7 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = {
|
||||
QUIRK_FLAG_IFACE_DELAY),
|
||||
DEVICE_FLG(0x0644, 0x8044, /* Esoteric D-05X */
|
||||
QUIRK_FLAG_ITF_USB_DSD_DAC | QUIRK_FLAG_CTL_MSG_DELAY |
|
||||
QUIRK_FLAG_IFACE_DELAY),
|
||||
QUIRK_FLAG_IFACE_DELAY | QUIRK_FLAG_FORCE_IFACE_RESET),
|
||||
DEVICE_FLG(0x0644, 0x804a, /* TEAC UD-301 */
|
||||
QUIRK_FLAG_ITF_USB_DSD_DAC | QUIRK_FLAG_CTL_MSG_DELAY |
|
||||
QUIRK_FLAG_IFACE_DELAY),
|
||||
@@ -2229,13 +2229,13 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = {
|
||||
QUIRK_FLAG_FORCE_IFACE_RESET),
|
||||
DEVICE_FLG(0x0644, 0x806b, /* TEAC UD-701 */
|
||||
QUIRK_FLAG_ITF_USB_DSD_DAC | QUIRK_FLAG_CTL_MSG_DELAY |
|
||||
QUIRK_FLAG_IFACE_DELAY),
|
||||
QUIRK_FLAG_IFACE_DELAY | QUIRK_FLAG_FORCE_IFACE_RESET),
|
||||
DEVICE_FLG(0x0644, 0x807d, /* TEAC UD-507 */
|
||||
QUIRK_FLAG_ITF_USB_DSD_DAC | QUIRK_FLAG_CTL_MSG_DELAY |
|
||||
QUIRK_FLAG_IFACE_DELAY),
|
||||
QUIRK_FLAG_IFACE_DELAY | QUIRK_FLAG_FORCE_IFACE_RESET),
|
||||
DEVICE_FLG(0x0644, 0x806c, /* Esoteric XD */
|
||||
QUIRK_FLAG_ITF_USB_DSD_DAC | QUIRK_FLAG_CTL_MSG_DELAY |
|
||||
QUIRK_FLAG_IFACE_DELAY),
|
||||
QUIRK_FLAG_IFACE_DELAY | QUIRK_FLAG_FORCE_IFACE_RESET),
|
||||
DEVICE_FLG(0x06f8, 0xb000, /* Hercules DJ Console (Windows Edition) */
|
||||
QUIRK_FLAG_IGNORE_CTL_ERROR),
|
||||
DEVICE_FLG(0x06f8, 0xd002, /* Hercules DJ Console (Macintosh Edition) */
|
||||
|
||||
Reference in New Issue
Block a user