lkml.org 
[lkml]   [2014]   [Dec]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.16.y-ckt 026/168] ALSA: usb-audio: Add ctrl message delay quirk for Marantz/Denon devices
    Date
    3.16.7-ckt3 -stable review patch.  If anyone has any objections, please let me know.

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

    From: Jurgen Kramer <gtmkramer@xs4all.nl>

    commit 6e84a8d7ac3ba246ef44e313e92bc16a1da1b04a upstream.

    This patch adds a USB control message delay quirk for a few specific Marantz/Denon
    devices. Without the delay the DACs will not work properly and produces the
    following type of messages:

    Nov 15 10:09:21 orwell kernel: [ 91.342880] usb 3-13: clock source 41 is not valid, cannot use
    Nov 15 10:09:21 orwell kernel: [ 91.343775] usb 3-13: clock source 41 is not valid, cannot use

    There are likely other Marantz/Denon devices using the same USB module which exhibit the
    same problems. But as this cannot be verified I limited the patch to the devices
    I could test.

    The following two devices are covered by this path:
    - Marantz SA-14S1
    - Marantz HD-DAC1

    Signed-off-by: Jurgen Kramer <gtmkramer@xs4all.nl>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
    ---
    sound/usb/quirks.c | 14 ++++++++++++++
    1 file changed, 14 insertions(+)

    diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
    index 19a921eb75f1..337067cce251 100644
    --- a/sound/usb/quirks.c
    +++ b/sound/usb/quirks.c
    @@ -1146,6 +1146,20 @@ void snd_usb_ctl_msg_quirk(struct usb_device *dev, unsigned int pipe,
    if ((le16_to_cpu(dev->descriptor.idVendor) == 0x23ba) &&
    (requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS)
    mdelay(20);
    +
    + /* Marantz/Denon devices with USB DAC functionality need a delay
    + * after each class compliant request
    + */
    + if ((le16_to_cpu(dev->descriptor.idVendor) == 0x154e) &&
    + (requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS) {
    +
    + switch (le16_to_cpu(dev->descriptor.idProduct)) {
    + case 0x3005: /* Marantz HD-DAC1 */
    + case 0x3006: /* Marantz SA-14S1 */
    + mdelay(20);
    + break;
    + }
    + }
    }

    /*
    --
    2.1.3


    \
     
     \ /
      Last update: 2014-12-15 16:41    [W:4.100 / U:0.228 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site