ALSA: usb: Add Plantronics C320-M USB ctrl msg delay quirk
authorJohn Ernberg <john.ernberg@actia.se>
Wed, 3 Mar 2021 18:14:39 +0000 (18:14 +0000)
committerTakashi Iwai <tiwai@suse.de>
Wed, 3 Mar 2021 19:19:23 +0000 (20:19 +0100)
The microphone in the Plantronics C320-M headset will randomly
fail to initialize properly, at least when using Microsoft Teams.
Introducing a 20ms delay on the control messages appears to
resolve the issue.

Link: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/1065
Tested-by: Andreas Kempe <kempe@lysator.liu.se>
Signed-off-by: John Ernberg <john.ernberg@actia.se>
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20210303181405.39835-1-john.ernberg@actia.se
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/quirks.c

index 737b272..0864692 100644 (file)
@@ -1670,6 +1670,14 @@ void snd_usb_ctl_msg_quirk(struct usb_device *dev, unsigned int pipe,
            && (requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS)
                msleep(20);
 
+       /*
+        * Plantronics C320-M needs a delay to avoid random
+        * microhpone failures.
+        */
+       if (chip->usb_id == USB_ID(0x047f, 0xc025)  &&
+           (requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS)
+               msleep(20);
+
        /* Zoom R16/24, many Logitech(at least H650e/H570e/BCC950),
         * Jabra 550a, Kingston HyperX needs a tiny delay here,
         * otherwise requests like get/set frequency return