Commit 8bfe17ad authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: usb-audio: Move rate validation quirk into quirk_flags

The rate validation at the device probe is applied only to the
specific devices (currently only for MOTU devices), and this check can
be moved to quirk_flags gracefully, too.

Link: https://lore.kernel.org/r/20210729074404.19728-1-tiwai@suse.de


Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 1f074fe5
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -472,12 +472,8 @@ static int validate_sample_rate_table_v2v3(struct snd_usb_audio *chip,
	 * behavior afterwards by some unknown reason.  Do this only for the
	 * known devices.
	 */
	switch (USB_ID_VENDOR(chip->usb_id)) {
	case 0x07fd: /* MOTU */
		break;
	default:
	if (!(chip->quirk_flags & QUIRK_FLAG_VALIDATE_RATES))
		return 0; /* don't perform the validation as default */
	}

	table = kcalloc(fp->nr_rates, sizeof(*table), GFP_KERNEL);
	if (!table)
+2 −0
Original line number Diff line number Diff line
@@ -1907,6 +1907,8 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = {
		   QUIRK_FLAG_GET_SAMPLE_RATE | QUIRK_FLAG_CTL_MSG_DELAY),
	VENDOR_FLG(0x0644, /* TEAC Corp. */
		   QUIRK_FLAG_CTL_MSG_DELAY | QUIRK_FLAG_IFACE_DELAY),
	VENDOR_FLG(0x07fd, /* MOTU */
		   QUIRK_FLAG_VALIDATE_RATES),
	VENDOR_FLG(0x1de7, /* Phoenix Audio */
		   QUIRK_FLAG_GET_SAMPLE_RATE),
	VENDOR_FLG(0x23ba, /* Playback Design */
+3 −0
Original line number Diff line number Diff line
@@ -155,6 +155,8 @@ extern bool snd_usb_skip_validation;
 *  Add a delay of 5-6ms at each control message handling
 * QUIRK_FLAG_IFACE_DELAY:
 *  Add a delay of 50ms at each interface setup
 * QUIRK_FLAG_VALIDATE_RATES:
 *  Perform sample rate validations at probe
 */

#define QUIRK_FLAG_GET_SAMPLE_RATE	(1U << 0)
@@ -169,5 +171,6 @@ extern bool snd_usb_skip_validation;
#define QUIRK_FLAG_CTL_MSG_DELAY_1M	(1U << 9)
#define QUIRK_FLAG_CTL_MSG_DELAY_5M	(1U << 10)
#define QUIRK_FLAG_IFACE_DELAY		(1U << 11)
#define QUIRK_FLAG_VALIDATE_RATES	(1U << 12)

#endif /* __USBAUDIO_H */