linux/sound/usb
Daniel Mack cb8a0948b8 ALSA: snd-usb: mixer: ignore -EINVAL in snd_usb_mixer_controls()
commit 83ea5d18d7 upstream.

Creation of individual mixer controls may fail, but that shouldn't cause
the entire mixer creation to fail. Even worse, if the mixer creation
fails, that will error out the entire device probing.

All the functions called by parse_audio_unit() should return -EINVAL if
they find descriptors that are unsupported or believed to be malformed,
so we can safely handle this error code as a non-fatal condition in
snd_usb_mixer_controls().

That fixes a long standing bug which is commonly worked around by
adding quirks which make the driver ignore entire interfaces. Some of
them might now be unnecessary.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Reported-and-tested-by: Rodolfo Thomazelli <pe.soberbo@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-03-28 12:12:05 -07:00
..
6fire ALSA: snd-usb-6fire: add analog input volume control 2012-02-22 15:51:26 +01:00
caiaq ALSA: snd-usb-caiaq: initialize card pointer 2012-12-03 11:46:36 -08: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 ALSA: usx2y: Fix typo in usbusx2yaudio.c and usx2yhwdeppcm.c 2012-02-15 14:56:11 +01:00
card.c ALSA: usb-audio: Fix mutex deadlock at disconnection 2012-11-17 13:16:36 -08:00
card.h ALSA: usb-audio: Fix races at disconnection 2012-11-17 13:16:12 -08:00
clock.c ALSA: snd-usb: fix clock source validity index 2012-08-09 08:31:51 -07:00
clock.h ALSA: usb-audio: simplify control interface access 2010-06-23 16:10:23 +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: usb-audio: Fix regression by disconnection-race-fix patch 2013-01-27 20:47:44 -08:00
endpoint.h ALSA: snd-usb: move code from urb.c to endpoint.c 2011-09-14 17:07:03 +02:00
format.c ALSA: usb-audio: avoid integer overflow in create_fixed_stream_quirk() 2012-02-15 14:58:15 +01:00
format.h ALSA: usb-audio: parse more format descriptors with structs 2010-05-27 09:48:31 +02:00
helper.c ALSA: usb-audio: increase control transfer timeout 2011-09-27 09:21:48 +02:00
helper.h ALSA: usb-audio: increase control transfer timeout 2011-09-27 09:21:48 +02:00
Kconfig ALSA: snd-usb-6fire: Select missing SND_VMASTER option in Kconfig 2012-02-25 11:07:19 +01: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: Fix missing autopm for MIDI input 2013-01-11 09:06:49 -08: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: unify constants from specification 2010-05-31 18:17:22 +02:00
mixer_quirks.c ALSA: usb-audio: Fix races at disconnection in mixer_quirks.c 2012-11-17 13:16:13 -08: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-28 12:12:05 -07:00
mixer.h ALSA: snd-usb: operate on given mixer interface only 2011-08-04 16:24:10 +02:00
pcm.c ALSA: usb-audio: Use rwsem for disconnect protection 2012-11-17 13:16:12 -08: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: Fix races at disconnection 2012-11-17 13:16:12 -08:00
proc.h ALSA: usb-audio: refactor code 2010-03-05 08:17:14 +01:00
quirks-table.h ALSA: usb-audio: fix Roland A-PRO support 2013-02-28 06:59:02 -08:00
quirks.c ALSA: usb - fix race in creation of M-Audio Fast track pro driver 2013-01-21 11:45:24 -08:00
quirks.h ALSA: usb-audio: refactor code 2010-03-05 08:17:14 +01:00
stream.c ALSA: snd-usb: move code from urb.c to endpoint.c 2011-09-14 17:07:03 +02:00
stream.h ALSA: snd-usb: re-order code 2011-09-14 17:07:02 +02:00
usbaudio.h ALSA: usb-audio: Use rwsem for disconnect protection 2012-11-17 13:16:12 -08:00