summaryrefslogtreecommitdiff
path: root/sound/usb
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2014-02-16 20:11:10 +0400
committerTakashi Iwai <tiwai@suse.de>2014-02-17 13:11:54 +0400
commit624aef494f86ed0c58056361c06347ad62b26806 (patch)
tree053d7d2b01250613689862ed883aeea96ee3f7b7 /sound/usb
parent2078600b1f8fc68b02f6ebdda1759fb0c9f51afb (diff)
downloadlinux-624aef494f86ed0c58056361c06347ad62b26806.tar.xz
ALSA: usb-audio: work around KEF X300A firmware bug
When the driver tries to access Function Unit 10, the KEF X300A speakers' firmware apparently locks up, making even PCM streaming impossible. Work around this by ignoring this FU. Cc: <stable@vger.kernel.org> Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb')
-rw-r--r--sound/usb/mixer_maps.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sound/usb/mixer_maps.c b/sound/usb/mixer_maps.c
index 32af6b741ef5..d1d72ff50347 100644
--- a/sound/usb/mixer_maps.c
+++ b/sound/usb/mixer_maps.c
@@ -328,6 +328,11 @@ static struct usbmix_name_map gamecom780_map[] = {
{}
};
+static const struct usbmix_name_map kef_x300a_map[] = {
+ { 10, NULL }, /* firmware locks up (?) when we try to access this FU */
+ { 0 }
+};
+
/*
* Control map entries
*/
@@ -419,6 +424,10 @@ static struct usbmix_ctl_map usbmix_ctl_maps[] = {
.id = USB_ID(0x200c, 0x1018),
.map = ebox44_map,
},
+ {
+ .id = USB_ID(0x27ac, 0x1000),
+ .map = kef_x300a_map,
+ },
{ 0 } /* terminator */
};