diff options
author | Jiri Jaburek <jjaburek@redhat.com> | 2014-12-17 20:03:19 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2014-12-18 11:49:50 -0500 |
commit | d70a1b9893f820fdbcdffac408c909c50f2e6b43 (patch) | |
tree | 82485e53d1da9b2a672584ed884f99ef247d5ee9 /sound/usb | |
parent | 506b62c33a7444b91a93bf2da772f4c7e6656410 (diff) |
ALSA: usb-audio: extend KEF X300A FU 10 tweak to Arcam rPAC
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).
Cc: <stable@vger.kernel.org>
Signed-off-by: Jiri Jaburek <jjaburek@redhat.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb')
-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 1994d41348f8..b703cb3cda19 100644 --- a/sound/usb/mixer_maps.c +++ b/sound/usb/mixer_maps.c | |||
@@ -333,8 +333,11 @@ static struct usbmix_name_map gamecom780_map[] = { | |||
333 | {} | 333 | {} |
334 | }; | 334 | }; |
335 | 335 | ||
336 | static const struct usbmix_name_map kef_x300a_map[] = { | 336 | /* some (all?) SCMS USB3318 devices are affected by a firmware lock up |
337 | { 10, NULL }, /* firmware locks up (?) when we try to access this FU */ | 337 | * when anything attempts to access FU 10 (control) |
338 | */ | ||
339 | static const struct usbmix_name_map scms_usb3318_map[] = { | ||
340 | { 10, NULL }, | ||
338 | { 0 } | 341 | { 0 } |
339 | }; | 342 | }; |
340 | 343 | ||
@@ -434,8 +437,14 @@ static struct usbmix_ctl_map usbmix_ctl_maps[] = { | |||
434 | .map = ebox44_map, | 437 | .map = ebox44_map, |
435 | }, | 438 | }, |
436 | { | 439 | { |
440 | /* KEF X300A */ | ||
437 | .id = USB_ID(0x27ac, 0x1000), | 441 | .id = USB_ID(0x27ac, 0x1000), |
438 | .map = kef_x300a_map, | 442 | .map = scms_usb3318_map, |
443 | }, | ||
444 | { | ||
445 | /* Arcam rPAC */ | ||
446 | .id = USB_ID(0x25c4, 0x0003), | ||
447 | .map = scms_usb3318_map, | ||
439 | }, | 448 | }, |
440 | { 0 } /* terminator */ | 449 | { 0 } /* terminator */ |
441 | }; | 450 | }; |