diff options
author | Jiri Jaburek <jjaburek@redhat.com> | 2014-12-18 02:03:19 +0100 |
---|---|---|
committer | Jiri Slaby <jslaby@suse.cz> | 2015-01-26 14:38:54 +0100 |
commit | 3d041411e3b467708e64f2bbb7b5d8b0885150aa (patch) | |
tree | 9f3ee7fef0ae517398f467d818cf1edc023559fc /sound | |
parent | ce3740b1080853a3f6c879374b468ae8800028a8 (diff) | |
download | lwn-3d041411e3b467708e64f2bbb7b5d8b0885150aa.tar.gz lwn-3d041411e3b467708e64f2bbb7b5d8b0885150aa.zip |
ALSA: usb-audio: extend KEF X300A FU 10 tweak to Arcam rPAC
commit d70a1b9893f820fdbcdffac408c909c50f2e6b43 upstream.
The Arcam rPAC seems to have the same problem - whenever anything
(alsamixer, udevd, 3.9+ kernel from 60af3d037eb8c, ..) attempts to
access mixer / control interface of the card, the firmware "locks up"
the entire device, resulting in
SNDRV_PCM_IOCTL_HW_PARAMS failed (-5): Input/output error
from alsa-lib.
Other operating systems can somehow read the mixer (there seems to be
playback volume/mute), but any manipulation is ignored by the device
(which has hardware volume controls).
Signed-off-by: Jiri Jaburek <jjaburek@redhat.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/usb/mixer_maps.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/sound/usb/mixer_maps.c b/sound/usb/mixer_maps.c index 0339d464791a..4df31b0f94a3 100644 --- a/sound/usb/mixer_maps.c +++ b/sound/usb/mixer_maps.c @@ -322,8 +322,11 @@ static struct usbmix_name_map hercules_usb51_map[] = { { 0 } /* terminator */ }; -static const struct usbmix_name_map kef_x300a_map[] = { - { 10, NULL }, /* firmware locks up (?) when we try to access this FU */ +/* some (all?) SCMS USB3318 devices are affected by a firmware lock up + * when anything attempts to access FU 10 (control) + */ +static const struct usbmix_name_map scms_usb3318_map[] = { + { 10, NULL }, { 0 } }; @@ -415,8 +418,14 @@ static struct usbmix_ctl_map usbmix_ctl_maps[] = { .map = ebox44_map, }, { + /* KEF X300A */ .id = USB_ID(0x27ac, 0x1000), - .map = kef_x300a_map, + .map = scms_usb3318_map, + }, + { + /* Arcam rPAC */ + .id = USB_ID(0x25c4, 0x0003), + .map = scms_usb3318_map, }, { 0 } /* terminator */ }; |