lkml.org 
[lkml]   [2015]   [Apr]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.4 068/176] ALSA: usb-audio: extend KEF X300A FU 10 tweak to Arcam rPAC
    Date
    From: Jiri Jaburek <jjaburek@redhat.com>

    3.4.107-rc1 review patch. If anyone has any objections, please let me know.

    ------------------


    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: Zefan Li <lizefan@huawei.com>
    ---
    sound/usb/mixer_maps.c | 15 ++++++++++++---
    1 file changed, 12 insertions(+), 3 deletions(-)

    diff --git a/sound/usb/mixer_maps.c b/sound/usb/mixer_maps.c
    index 0e4e909..1e0798f 100644
    --- a/sound/usb/mixer_maps.c
    +++ b/sound/usb/mixer_maps.c
    @@ -304,8 +304,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 }
    };

    @@ -377,8 +380,14 @@ static struct usbmix_ctl_map usbmix_ctl_maps[] = {
    .ignore_ctl_error = 1,
    },
    {
    + /* 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 */
    };
    --
    1.9.1


    \
     
     \ /
      Last update: 2015-04-09 12:21    [W:5.084 / U:0.096 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site