diff mbox series

ALSA: usb-audio: Add delay quirk for all Logitech USB devices

Message ID 20201113153720.5158-1-joakim.tjernlund@infinera.com (mailing list archive)
State Superseded
Headers show
Series ALSA: usb-audio: Add delay quirk for all Logitech USB devices | expand

Commit Message

Joakim Tjernlund Nov. 13, 2020, 3:37 p.m. UTC
Found one more Logitech device, BCC950 ConferenceCam, which needs
the same delay here. This makes 3 out of 3 devices I have tried.

Therefore, add a delay for all Logitech devices as it does not hurt.

Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com>
CC: stable@vger.kernel.org (4.19, 5.4)

---
 sound/usb/quirks.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Comments

Joakim Tjernlund Nov. 13, 2020, 3:48 p.m. UTC | #1
On Fri, 2020-11-13 at 16:37 +0100, Joakim Tjernlund wrote:
> Found one more Logitech device, BCC950 ConferenceCam, which needs
> the same delay here. This makes 3 out of 3 devices I have tried.
> 
> Therefore, add a delay for all Logitech devices as it does not hurt.

Maybe this delay should just be default for all USB audio devices?

 Jocke

> 
> Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com>
> CC: stable@vger.kernel.org (4.19, 5.4)
> 
> ---
>  sound/usb/quirks.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
> index c989ad8052ae..c50be2f75f70 100644
> --- a/sound/usb/quirks.c
> +++ b/sound/usb/quirks.c
> @@ -1672,13 +1672,13 @@ void snd_usb_ctl_msg_quirk(struct usb_device *dev, unsigned int pipe,
>  	    && (requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS)
>  		msleep(20);
>  
> 
> 
> 
> -	/* Zoom R16/24, Logitech H650e/H570e, Jabra 550a, Kingston HyperX
> -	 *  needs a tiny delay here, otherwise requests like get/set
> -	 *  frequency return as failed despite actually succeeding.
> +	/* 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
> +	 * as failed despite actually succeeding.
>  	 */
>  	if ((chip->usb_id == USB_ID(0x1686, 0x00dd) ||
> -	     chip->usb_id == USB_ID(0x046d, 0x0a46) ||
> -	     chip->usb_id == USB_ID(0x046d, 0x0a56) ||
> +	     USB_ID_VENDOR(chip->usb_id) == 0x046d  || /* Logitech */
>  	     chip->usb_id == USB_ID(0x0b0e, 0x0349) ||
>  	     chip->usb_id == USB_ID(0x0951, 0x16ad)) &&
>  	    (requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS)
Joakim Tjernlund Nov. 17, 2020, 10:40 a.m. UTC | #2
Ping ?

On Fri, 2020-11-13 at 16:37 +0100, Joakim Tjernlund wrote:
> Found one more Logitech device, BCC950 ConferenceCam, which needs
> the same delay here. This makes 3 out of 3 devices I have tried.
> 
> Therefore, add a delay for all Logitech devices as it does not hurt.
> 
> Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com>
> CC: stable@vger.kernel.org (4.19, 5.4)
> 
> ---
>  sound/usb/quirks.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
> index c989ad8052ae..c50be2f75f70 100644
> --- a/sound/usb/quirks.c
> +++ b/sound/usb/quirks.c
> @@ -1672,13 +1672,13 @@ void snd_usb_ctl_msg_quirk(struct usb_device *dev, unsigned int pipe,
>  	    && (requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS)
>  		msleep(20);
>  
> 
> -	/* Zoom R16/24, Logitech H650e/H570e, Jabra 550a, Kingston HyperX
> -	 *  needs a tiny delay here, otherwise requests like get/set
> -	 *  frequency return as failed despite actually succeeding.
> +	/* 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
> +	 * as failed despite actually succeeding.
>  	 */
>  	if ((chip->usb_id == USB_ID(0x1686, 0x00dd) ||
> -	     chip->usb_id == USB_ID(0x046d, 0x0a46) ||
> -	     chip->usb_id == USB_ID(0x046d, 0x0a56) ||
> +	     USB_ID_VENDOR(chip->usb_id) == 0x046d  || /* Logitech */
>  	     chip->usb_id == USB_ID(0x0b0e, 0x0349) ||
>  	     chip->usb_id == USB_ID(0x0951, 0x16ad)) &&
>  	    (requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS)
Greg Kroah-Hartman Nov. 17, 2020, noon UTC | #3
On Tue, Nov 17, 2020 at 10:40:43AM +0000, Joakim Tjernlund wrote:
> 
> Ping ?
> 
> On Fri, 2020-11-13 at 16:37 +0100, Joakim Tjernlund wrote:
> > Found one more Logitech device, BCC950 ConferenceCam, which needs
> > the same delay here. This makes 3 out of 3 devices I have tried.
> > 
> > Therefore, add a delay for all Logitech devices as it does not hurt.
> > 
> > Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com>
> > CC: stable@vger.kernel.org (4.19, 5.4)
> > 
> > ---
> >  sound/usb/quirks.c | 10 +++++-----
> >  1 file changed, 5 insertions(+), 5 deletions(-)

$ ./scripts/get_maintainer.pl --file sound/usb/quirks.c
Jaroslav Kysela <perex@perex.cz> (maintainer:SOUND)
Takashi Iwai <tiwai@suse.com> (maintainer:SOUND,commit_signer:26/27=96%,authored:4/27=15%,added_lines:39/245=16%,removed_lines:18/59=31%)
Alexander Tsoy <alexander@tsoy.me> (commit_signer:6/27=22%,authored:5/27=19%,added_lines:63/245=26%,removed_lines:22/59=37%)
Greg Kroah-Hartman <gregkh@linuxfoundation.org> (commit_signer:2/27=7%,authored:2/27=7%,removed_lines:12/59=20%)
Nick Kossifidis <mickflemm@gmail.com> (added_lines:36/245=15%)
Dmitry Panchenko <dmitry@d-systems.ee> (added_lines:27/245=11%)
Chris Wulff <crwulff@gmail.com> (added_lines:14/245=6%)
Jesus Ramos <jesus-ramos@live.com> (removed_lines:4/59=7%)
Joakim Tjernlund <joakim.tjernlund@infinera.com> (removed_lines:3/59=5%)
alsa-devel@alsa-project.org (moderated list:SOUND)
linux-kernel@vger.kernel.org (open list)


Try sending it to the people who can actually apply the thing...
diff mbox series

Patch

diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index c989ad8052ae..c50be2f75f70 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -1672,13 +1672,13 @@  void snd_usb_ctl_msg_quirk(struct usb_device *dev, unsigned int pipe,
 	    && (requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS)
 		msleep(20);
 
-	/* Zoom R16/24, Logitech H650e/H570e, Jabra 550a, Kingston HyperX
-	 *  needs a tiny delay here, otherwise requests like get/set
-	 *  frequency return as failed despite actually succeeding.
+	/* 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
+	 * as failed despite actually succeeding.
 	 */
 	if ((chip->usb_id == USB_ID(0x1686, 0x00dd) ||
-	     chip->usb_id == USB_ID(0x046d, 0x0a46) ||
-	     chip->usb_id == USB_ID(0x046d, 0x0a56) ||
+	     USB_ID_VENDOR(chip->usb_id) == 0x046d  || /* Logitech */
 	     chip->usb_id == USB_ID(0x0b0e, 0x0349) ||
 	     chip->usb_id == USB_ID(0x0951, 0x16ad)) &&
 	    (requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS)