aboutsummaryrefslogtreecommitdiff
path: root/sound/usb/quirks.c
diff options
context:
space:
mode:
authorAlex Shi <alex.shi@linaro.org>2016-04-21 14:42:15 +0800
committerAlex Shi <alex.shi@linaro.org>2016-04-21 14:42:15 +0800
commitfd9302c16fc244139c1ddfdffc145d5b772ed9ce (patch)
tree40270feadd63149bcd43380cf3fe402a2dcd85ad /sound/usb/quirks.c
parent9b17ba5e21b99587d7c54250059cf10fd51c74f2 (diff)
parent6fe78bc1bfcddabbf3d210e18f91da44fa796d8a (diff)
Merge remote-tracking branch 'lts/linux-4.1.y' into linux-linaro-lsk-v4.1lsk-v4.1-16.04
Conflicts: arch/arm/include/asm/psci.h mm/memcontrol.c
Diffstat (limited to 'sound/usb/quirks.c')
-rw-r--r--sound/usb/quirks.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index a4d03e5da3e0..5fb308d39e2a 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -177,6 +177,12 @@ static int create_fixed_stream_quirk(struct snd_usb_audio *chip,
}
alts = &iface->altsetting[fp->altset_idx];
altsd = get_iface_desc(alts);
+ if (altsd->bNumEndpoints < 1) {
+ kfree(fp);
+ kfree(rate_table);
+ return -EINVAL;
+ }
+
fp->protocol = altsd->bInterfaceProtocol;
if (fp->datainterval == 0)
@@ -1118,6 +1124,7 @@ bool snd_usb_get_sample_rate_quirk(struct snd_usb_audio *chip)
switch (chip->usb_id) {
case USB_ID(0x045E, 0x075D): /* MS Lifecam Cinema */
case USB_ID(0x045E, 0x076D): /* MS Lifecam HD-5000 */
+ case USB_ID(0x045E, 0x076E): /* MS Lifecam HD-5001 */
case USB_ID(0x045E, 0x076F): /* MS Lifecam HD-6000 */
case USB_ID(0x045E, 0x0772): /* MS Lifecam Studio */
case USB_ID(0x045E, 0x0779): /* MS Lifecam HD-3000 */