Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b9d43bcd authored by Pavel Machek's avatar Pavel Machek Committed by Takashi Iwai
Browse files

[ALSA] usb audio: Fix another Dallas quirk



Dallas USB speakers are buggy in more than one way. One of configs
they offer does not work at all.

Signed-off-by: default avatarPavel Machek <pavel@suse.cz>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent eaa9985b
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -2676,12 +2676,23 @@ static int parse_audio_endpoints(struct snd_usb_audio *chip, int iface_no)
	int format;
	struct audioformat *fp;
	unsigned char *fmt, *csep;
	int num;

	dev = chip->dev;

	/* parse the interface's altsettings */
	iface = usb_ifnum_to_if(dev, iface_no);
	for (i = 0; i < iface->num_altsetting; i++) {

	num = iface->num_altsetting;

	/*
	 * Dallas DS4201 workaround: It presents 5 altsettings, but the last
	 * one misses syncpipe, and does not produce any sound.
	 */
	if (chip->usb_id == USB_ID(0x04fa, 0x4201))
		num = 4;

	for (i = 0; i < num; i++) {
		alts = &iface->altsetting[i];
		altsd = get_iface_desc(alts);
		/* skip invalid one */