summaryrefslogtreecommitdiffstats
path: root/sound/usb/pcm.c
diff options
context:
space:
mode:
authorClemens Ladisch2010-09-03 10:53:11 +0200
committerTakashi Iwai2010-09-03 22:36:39 +0200
commita2acad8298a42b7be684a32fafaf83332bba9c2b (patch)
tree34cddff9b3b8efcc3a60a6e9d0a3e001a714d364 /sound/usb/pcm.c
parentALSA: usb-audio: Assume first control interface is for audio (diff)
downloadkernel-qcow2-linux-a2acad8298a42b7be684a32fafaf83332bba9c2b.tar.gz
kernel-qcow2-linux-a2acad8298a42b7be684a32fafaf83332bba9c2b.tar.xz
kernel-qcow2-linux-a2acad8298a42b7be684a32fafaf83332bba9c2b.zip
ALSA: usb-audio: fix detection of vendor-specific device protocol settings
The Audio Class v2 support code in 2.6.35 added checks for the bInterfaceProtocol field. However, there are devices (usually those detected by vendor-specific quirks) that do not have one of the predefined values in this field, which made the driver reject them. To fix this regression, restore the old behaviour, i.e., assume that a device with an unknown bInterfaceProtocol field (other than UAC_VERSION_2) has more or less UAC-v1-compatible descriptors. [compile warning fixes by tiwai] Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Cc: Daniel Mack <daniel@caiaq.de> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb/pcm.c')
-rw-r--r--sound/usb/pcm.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c
index 3634cedf9306..3b5135c93062 100644
--- a/sound/usb/pcm.c
+++ b/sound/usb/pcm.c
@@ -173,13 +173,12 @@ int snd_usb_init_pitch(struct snd_usb_audio *chip, int iface,
switch (altsd->bInterfaceProtocol) {
case UAC_VERSION_1:
+ default:
return init_pitch_v1(chip, iface, alts, fmt);
case UAC_VERSION_2:
return init_pitch_v2(chip, iface, alts, fmt);
}
-
- return -EINVAL;
}
/*