summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Laako <jussi@sonarnerd.net>2025-12-11 17:22:22 +0200
committerTakashi Iwai <tiwai@suse.de>2025-12-13 10:33:22 +0100
commit7fde61795df6cbdab90166df33648cc6314fcadd (patch)
treef9e4118134fd86b8f129e6ecb48f7741e7da580b
parentda3a7efff64ec0d63af4499eea3a46a2e13b5797 (diff)
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
-rw-r--r--sound/usb/endpoint.c6
-rw-r--r--sound/usb/quirks.c8
2 files changed, 7 insertions, 7 deletions
diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c
index cc15624ecaff..8f9313857ee9 100644
--- a/sound/usb/endpoint.c
+++ b/sound/usb/endpoint.c
@@ -1481,15 +1481,15 @@ int snd_usb_endpoint_prepare(struct snd_usb_audio *chip,
return err;
}
- err = snd_usb_init_pitch(chip, ep->cur_audiofmt);
+ err = snd_usb_select_mode_quirk(chip, ep->cur_audiofmt);
if (err < 0)
return err;
- err = init_sample_rate(chip, ep);
+ err = snd_usb_init_pitch(chip, ep->cur_audiofmt);
if (err < 0)
return err;
- err = snd_usb_select_mode_quirk(chip, ep->cur_audiofmt);
+ err = init_sample_rate(chip, ep);
if (err < 0)
return err;
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 94a8fdc9c6d3..f38330b095e9 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -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) */