OSDN Git Service

ALSA: usb-audio: Add delay quirk for H650e/Jabra 550a USB headsets
authorJoakim Tjernlund <joakim.tjernlund@infinera.com>
Tue, 22 Aug 2017 06:33:53 +0000 (08:33 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 30 Aug 2017 08:21:45 +0000 (10:21 +0200)
commit 07b3b5e9ed807a0d2077319b8e43a42e941db818 upstream.

These headsets reports a lot of: cannot set freq 44100 to ep 0x81
and need a small delay between sample rate settings, just like
Zoom R16/24. Add both headsets to the Zoom R16/24 quirk for
a 1 ms delay between control msgs.

Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/usb/quirks.c

index 95c2749..286efc3 100644 (file)
@@ -1309,10 +1309,13 @@ void snd_usb_ctl_msg_quirk(struct usb_device *dev, unsigned int pipe,
            && (requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS)
                mdelay(20);
 
-       /* Zoom R16/24 needs a tiny delay here, otherwise requests like
-        * get/set frequency return as failed despite actually succeeding.
+       /* Zoom R16/24, Logitech H650e, Jabra 550a needs a tiny delay here,
+        * otherwise requests like get/set frequency return as failed despite
+        * actually succeeding.
         */
-       if (chip->usb_id == USB_ID(0x1686, 0x00dd) &&
+       if ((chip->usb_id == USB_ID(0x1686, 0x00dd) ||
+            chip->usb_id == USB_ID(0x046d, 0x0a46) ||
+            chip->usb_id == USB_ID(0x0b0e, 0x0349)) &&
            (requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS)
                mdelay(1);
 }