kernel-ark/sound/usb
Daniel Mack ebfc594c02 ALSA: snd-usb: try harder to find USB_DT_CS_ENDPOINT
The USB_DT_CS_ENDPOINT class-specific endpoint descriptor is usually
stuffed directly after the standard USB endpoint descriptor, and this is
where the driver currently expects it to be.

There are, however, devices in the wild that have it the other way
around in their descriptor sets, so the USB_DT_CS_ENDPOINT comes
*before* the standard enpoint. Devices known to implement it that way
are "Sennheiser BTD-500" and Plantronics USB headsets.

When the driver can't find the USB_DT_CS_ENDPOINT, it won't be able to
change sample rates, as the bitmask for the validity of this command is
storen in bmAttributes of that descriptor.

Fix this by searching the entire interface instead of just the extra
bytes of the first endpoint, in case the latter fails.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Reported-and-tested-by: Torstein Hegge <hegge@resisty.net>
Reported-and-tested-by: Yves G <alsa-user@vivigatt.com>
Cc: stable@kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-25 07:33:20 +02:00
..
6fire ALSA: usb6fire: prevent driver panic state when stopping 2012-12-07 15:03:34 +01:00
caiaq ALSA: snd-usb-caiaq: fix smatch warnings 2013-03-07 09:24:12 +01:00
misc Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound 2012-01-12 08:00:30 -08:00
usx2y mm: kill vma flag VM_RESERVED and mm->reserved_vm counter 2012-10-09 16:22:19 +09:00
card.c ALSA: usb-audio: UAC2: auto clock selection module param 2013-04-04 08:31:32 +02:00
card.h ALSA: snd-usb: add support for bit-reversed byte formats 2013-04-18 10:03:47 +02:00
clock.c ALSA: snd-usb: Playback Design: use usb_set_inferface quirk from more locations 2013-04-10 09:21:43 +02:00
clock.h ALSA: usb-audio: UAC2: do clock validity check earlier 2013-04-04 08:30:59 +02:00
debug.h ALSA: usb-audio: make hwc_debug a noop in case HW_CONST_DEBUG is not set 2011-05-18 11:44:35 +02:00
endpoint.c ALSA: snd-usb: add support for DSD DOP stream transport 2013-04-18 10:03:32 +02:00
endpoint.h ALSA: usb-audio: spelling correction 2013-04-04 08:30:30 +02:00
format.c ALSA: snd-usb: add quirks handler for DSD streams 2013-04-18 10:03:53 +02:00
format.h ALSA: snd-usb: handle the bmFormats field as unsigned int 2013-03-18 08:47:04 +01:00
helper.c ALSA: snd-usb-audio: set the timeout for usb control set messages to 5000 ms 2013-04-22 10:45:02 +02:00
helper.h ALSA: usb-audio: increase control transfer timeout 2011-09-27 09:21:48 +02:00
Kconfig ALSA: sound/usb: remove CONFIG_EXPERIMENTAL 2012-10-25 00:17:47 +02:00
Makefile ALSA: snd-usb: move code from urb.c to endpoint.c 2011-09-14 17:07:03 +02:00
midi.c ALSA: usb-audio: disable autopm for MIDI devices 2013-04-15 16:03:57 +02:00
midi.h ALSA: usb-audio: add support for Akai MPD16 2010-05-21 17:12:30 +02:00
mixer_maps.c ALSA: usb-audio: add support for M-Audio FT C600 2013-02-11 14:02:27 +01:00
mixer_quirks.c ALSA: usb-audio: fix endianness bug in snd_nativeinstruments_* 2013-04-07 09:44:08 +02:00
mixer_quirks.h ALSA: usb-mixer: factor out quirks 2010-03-12 12:20:26 +01:00
mixer.c ALSA: snd-usb: mixer: ignore -EINVAL in snd_usb_mixer_controls() 2013-03-20 08:43:00 +01:00
mixer.h ALSA: usb-audio: add control index offset 2012-11-29 08:43:12 +01:00
pcm.c ALSA: snd-usb: add support for bit-reversed byte formats 2013-04-18 10:03:47 +02:00
pcm.h ALSA: usb: refine delay information with USB frame counter 2011-09-12 10:30:20 +02:00
power.h ALSA: usbaudio: implement USB autosuspend 2011-03-11 14:59:29 +01:00
proc.c ALSA: usb-audio: convert list_for_each to entry variant 2013-04-04 08:30:06 +02:00
proc.h ALSA: usb-audio: refactor code 2010-03-05 08:17:14 +01:00
quirks-table.h ALSA: usb-audio: Trust fields given in the quirk 2013-03-18 08:46:37 +01:00
quirks.c ASoC: More updates for v3.10 2013-04-18 16:24:31 +02:00
quirks.h ALSA: snd-usb: add quirks handler for DSD streams 2013-04-18 10:03:53 +02:00
stream.c ALSA: snd-usb: try harder to find USB_DT_CS_ENDPOINT 2013-04-25 07:33:20 +02:00
stream.h ALSA: snd-usb: re-order code 2011-09-14 17:07:02 +02:00
usbaudio.h ALSA: usb-audio: UAC2: auto clock selection module param 2013-04-04 08:31:32 +02:00