aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoris van Rantwijk <jorispubl@xs4all.nl>2009-02-16 16:58:23 -0500
committerTakashi Iwai <tiwai@suse.de>2009-02-16 16:58:23 -0500
commit3b03cc5b86e2052295b9b484f37226ee15c87924 (patch)
treef6819194e917055062731ae0e5eea36631ca8892
parent0412558c873f716efe902b397af0653a550f7341 (diff)
ALSA: usb-audio - Workaround for misdetected sample rate with CM6207
The CM6207 incorrectly advertises its 96 kHz playback setting as 48 kHz in its USB device descriptor. This patch extends an existing workaround in usbaudio.c to also cover the CM6207. This resolves issue 0004249 in the ALSA bug tracker. Signed-off-by: Joris van Rantwijk <jorispubl@xs4all.nl> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/usb/usbaudio.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/usb/usbaudio.c b/sound/usb/usbaudio.c
index 80863093d2c8..19e37451c216 100644
--- a/sound/usb/usbaudio.c
+++ b/sound/usb/usbaudio.c
@@ -2539,7 +2539,8 @@ static int parse_audio_format_rates(struct snd_usb_audio *chip, struct audioform
2539 continue; 2539 continue;
2540 /* C-Media CM6501 mislabels its 96 kHz altsetting */ 2540 /* C-Media CM6501 mislabels its 96 kHz altsetting */
2541 if (rate == 48000 && nr_rates == 1 && 2541 if (rate == 48000 && nr_rates == 1 &&
2542 chip->usb_id == USB_ID(0x0d8c, 0x0201) && 2542 (chip->usb_id == USB_ID(0x0d8c, 0x0201) ||
2543 chip->usb_id == USB_ID(0x0d8c, 0x0102)) &&
2543 fp->altsetting == 5 && fp->maxpacksize == 392) 2544 fp->altsetting == 5 && fp->maxpacksize == 392)
2544 rate = 96000; 2545 rate = 96000;
2545 fp->rate_table[fp->nr_rates] = rate; 2546 fp->rate_table[fp->nr_rates] = rate;