Commit eb2f2690 authored by Jiri Jaburek's avatar Jiri Jaburek Committed by Luis Henriques

ALSA: usb-audio: extend KEF X300A FU 10 tweak to Arcam rPAC

commit d70a1b98 upstream.

The Arcam rPAC seems to have the same problem - whenever anything
(alsamixer, udevd, 3.9+ kernel from 60af3d03, ..) 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: default avatarJiri Jaburek <jjaburek@redhat.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarLuis Henriques <luis.henriques@canonical.com>
parent 5862abdd
...@@ -328,8 +328,11 @@ static struct usbmix_name_map gamecom780_map[] = { ...@@ -328,8 +328,11 @@ static struct usbmix_name_map gamecom780_map[] = {
{} {}
}; };
static const struct usbmix_name_map kef_x300a_map[] = { /* some (all?) SCMS USB3318 devices are affected by a firmware lock up
{ 10, NULL }, /* firmware locks up (?) when we try to access this FU */ * when anything attempts to access FU 10 (control)
*/
static const struct usbmix_name_map scms_usb3318_map[] = {
{ 10, NULL },
{ 0 } { 0 }
}; };
...@@ -425,8 +428,14 @@ static struct usbmix_ctl_map usbmix_ctl_maps[] = { ...@@ -425,8 +428,14 @@ static struct usbmix_ctl_map usbmix_ctl_maps[] = {
.map = ebox44_map, .map = ebox44_map,
}, },
{ {
/* KEF X300A */
.id = USB_ID(0x27ac, 0x1000), .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 */ { 0 } /* terminator */
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment