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

authored by Jussi Laako and committed by Takashi Iwai 7fde6179 da3a7eff

+8 -8
+4 -4
sound/usb/endpoint.c
··· 1481 1481 return err; 1482 1482 } 1483 1483 1484 + err = snd_usb_select_mode_quirk(chip, ep->cur_audiofmt); 1485 + if (err < 0) 1486 + return err; 1487 + 1484 1488 err = snd_usb_init_pitch(chip, ep->cur_audiofmt); 1485 1489 if (err < 0) 1486 1490 return err; 1487 1491 1488 1492 err = init_sample_rate(chip, ep); 1489 - if (err < 0) 1490 - return err; 1491 - 1492 - err = snd_usb_select_mode_quirk(chip, ep->cur_audiofmt); 1493 1493 if (err < 0) 1494 1494 return err; 1495 1495
+4 -4
sound/usb/quirks.c
··· 2221 2221 QUIRK_FLAG_IFACE_DELAY), 2222 2222 DEVICE_FLG(0x0644, 0x8044, /* Esoteric D-05X */ 2223 2223 QUIRK_FLAG_ITF_USB_DSD_DAC | QUIRK_FLAG_CTL_MSG_DELAY | 2224 - QUIRK_FLAG_IFACE_DELAY), 2224 + QUIRK_FLAG_IFACE_DELAY | QUIRK_FLAG_FORCE_IFACE_RESET), 2225 2225 DEVICE_FLG(0x0644, 0x804a, /* TEAC UD-301 */ 2226 2226 QUIRK_FLAG_ITF_USB_DSD_DAC | QUIRK_FLAG_CTL_MSG_DELAY | 2227 2227 QUIRK_FLAG_IFACE_DELAY), ··· 2229 2229 QUIRK_FLAG_FORCE_IFACE_RESET), 2230 2230 DEVICE_FLG(0x0644, 0x806b, /* TEAC UD-701 */ 2231 2231 QUIRK_FLAG_ITF_USB_DSD_DAC | QUIRK_FLAG_CTL_MSG_DELAY | 2232 - QUIRK_FLAG_IFACE_DELAY), 2232 + QUIRK_FLAG_IFACE_DELAY | QUIRK_FLAG_FORCE_IFACE_RESET), 2233 2233 DEVICE_FLG(0x0644, 0x807d, /* TEAC UD-507 */ 2234 2234 QUIRK_FLAG_ITF_USB_DSD_DAC | QUIRK_FLAG_CTL_MSG_DELAY | 2235 - QUIRK_FLAG_IFACE_DELAY), 2235 + QUIRK_FLAG_IFACE_DELAY | QUIRK_FLAG_FORCE_IFACE_RESET), 2236 2236 DEVICE_FLG(0x0644, 0x806c, /* Esoteric XD */ 2237 2237 QUIRK_FLAG_ITF_USB_DSD_DAC | QUIRK_FLAG_CTL_MSG_DELAY | 2238 - QUIRK_FLAG_IFACE_DELAY), 2238 + QUIRK_FLAG_IFACE_DELAY | QUIRK_FLAG_FORCE_IFACE_RESET), 2239 2239 DEVICE_FLG(0x06f8, 0xb000, /* Hercules DJ Console (Windows Edition) */ 2240 2240 QUIRK_FLAG_IGNORE_CTL_ERROR), 2241 2241 DEVICE_FLG(0x06f8, 0xd002, /* Hercules DJ Console (Macintosh Edition) */