diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2010-09-03 12:53:11 +0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2010-09-04 00:36:39 +0400 |
commit | a2acad8298a42b7be684a32fafaf83332bba9c2b (patch) | |
tree | 34cddff9b3b8efcc3a60a6e9d0a3e001a714d364 /sound/usb/clock.c | |
parent | 7b6717e144de6592e614fd7fc3b914b6bf686a9d (diff) | |
download | linux-a2acad8298a42b7be684a32fafaf83332bba9c2b.tar.xz |
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/clock.c')
-rw-r--r-- | sound/usb/clock.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/sound/usb/clock.c b/sound/usb/clock.c index b853f8df794f..7754a1034545 100644 --- a/sound/usb/clock.c +++ b/sound/usb/clock.c @@ -295,12 +295,11 @@ int snd_usb_init_sample_rate(struct snd_usb_audio *chip, int iface, switch (altsd->bInterfaceProtocol) { case UAC_VERSION_1: + default: return set_sample_rate_v1(chip, iface, alts, fmt, rate); case UAC_VERSION_2: return set_sample_rate_v2(chip, iface, alts, fmt, rate); } - - return -EINVAL; } |