Messages in this thread | | | Date | Sat, 29 Mar 2008 23:32:41 +0100 | From | Pavel Machek <> | Subject | 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: Pavel Machek <pavel@suse.cz>
diff --git a/sound/usb/usbaudio.c b/sound/usb/usbaudio.c index 257a4e1..b6b2490 100644 --- a/sound/usb/usbaudio.c +++ b/sound/usb/usbaudio.c 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 */
-- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
| |