[1/1] usb: quirks: add delay init quirk for Corsair Strafe RGB keyboard

Message ID 20170907080523.6847-2-kai.heng.feng@canonical.com
State New
Headers show
Series
  • Make Corsair Strafe RGB detection more reliable
Related show

Commit Message

Kai-Heng Feng Sept. 7, 2017, 8:05 a.m.
BugLink: https://bugs.launchpad.net/bugs/1678477

Corsair Strafe RGB keyboard has trouble to initialize:

[ 1.679455] usb 3-6: new full-speed USB device number 4 using xhci_hcd
[ 6.871136] usb 3-6: unable to read config index 0 descriptor/all
[ 6.871138] usb 3-6: can't read configurations, error -110
[ 6.991019] usb 3-6: new full-speed USB device number 5 using xhci_hcd
[ 12.246642] usb 3-6: unable to read config index 0 descriptor/all
[ 12.246644] usb 3-6: can't read configurations, error -110
[ 12.366555] usb 3-6: new full-speed USB device number 6 using xhci_hcd
[ 17.622145] usb 3-6: unable to read config index 0 descriptor/all
[ 17.622147] usb 3-6: can't read configurations, error -110
[ 17.742093] usb 3-6: new full-speed USB device number 7 using xhci_hcd
[ 22.997715] usb 3-6: unable to read config index 0 descriptor/all
[ 22.997716] usb 3-6: can't read configurations, error -110

Although it may work after several times unpluging/pluging:

[ 68.195240] usb 3-6: new full-speed USB device number 11 using xhci_hcd
[ 68.337459] usb 3-6: New USB device found, idVendor=1b1c, idProduct=1b20
[ 68.337463] usb 3-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 68.337466] usb 3-6: Product: Corsair STRAFE RGB Gaming Keyboard
[ 68.337468] usb 3-6: Manufacturer: Corsair
[ 68.337470] usb 3-6: SerialNumber: 0F013021AEB8046755A93ED3F5001941

Tried three quirks: USB_QUIRK_DELAY_INIT, USB_QUIRK_NO_LPM and
USB_QUIRK_DEVICE_QUALIFIER, user confirmed that USB_QUIRK_DELAY_INIT alone
can workaround this issue. Hence add the quirk for Corsair Strafe RGB.

BugLink: https://bugs.launchpad.net/bugs/1678477
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit de3af5bf259d7a0bfaac70441c8568ab5998d80c)
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
---
 drivers/usb/core/quirks.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Stefan Bader Sept. 11, 2017, 11:28 a.m. | #1
On 07.09.2017 10:05, Kai-Heng Feng wrote:
> BugLink: https://bugs.launchpad.net/bugs/1678477
> 
> Corsair Strafe RGB keyboard has trouble to initialize:
> 
> [ 1.679455] usb 3-6: new full-speed USB device number 4 using xhci_hcd
> [ 6.871136] usb 3-6: unable to read config index 0 descriptor/all
> [ 6.871138] usb 3-6: can't read configurations, error -110
> [ 6.991019] usb 3-6: new full-speed USB device number 5 using xhci_hcd
> [ 12.246642] usb 3-6: unable to read config index 0 descriptor/all
> [ 12.246644] usb 3-6: can't read configurations, error -110
> [ 12.366555] usb 3-6: new full-speed USB device number 6 using xhci_hcd
> [ 17.622145] usb 3-6: unable to read config index 0 descriptor/all
> [ 17.622147] usb 3-6: can't read configurations, error -110
> [ 17.742093] usb 3-6: new full-speed USB device number 7 using xhci_hcd
> [ 22.997715] usb 3-6: unable to read config index 0 descriptor/all
> [ 22.997716] usb 3-6: can't read configurations, error -110
> 
> Although it may work after several times unpluging/pluging:
> 
> [ 68.195240] usb 3-6: new full-speed USB device number 11 using xhci_hcd
> [ 68.337459] usb 3-6: New USB device found, idVendor=1b1c, idProduct=1b20
> [ 68.337463] usb 3-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> [ 68.337466] usb 3-6: Product: Corsair STRAFE RGB Gaming Keyboard
> [ 68.337468] usb 3-6: Manufacturer: Corsair
> [ 68.337470] usb 3-6: SerialNumber: 0F013021AEB8046755A93ED3F5001941
> 
> Tried three quirks: USB_QUIRK_DELAY_INIT, USB_QUIRK_NO_LPM and
> USB_QUIRK_DEVICE_QUALIFIER, user confirmed that USB_QUIRK_DELAY_INIT alone
> can workaround this issue. Hence add the quirk for Corsair Strafe RGB.
> 
> BugLink: https://bugs.launchpad.net/bugs/1678477
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
> Cc: stable <stable@vger.kernel.org>
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> (cherry picked from commit de3af5bf259d7a0bfaac70441c8568ab5998d80c)
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>

> ---

Please add SRU justification to bug report (description).

>  drivers/usb/core/quirks.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
> index 96b21b0dac1e..d87abbd75706 100644
> --- a/drivers/usb/core/quirks.c
> +++ b/drivers/usb/core/quirks.c
> @@ -214,6 +214,9 @@ static const struct usb_device_id usb_quirk_list[] = {
>  	{ USB_DEVICE(0x1a0a, 0x0200), .driver_info =
>  			USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL },
>  
> +	/* Corsair Strafe RGB */
> +	{ USB_DEVICE(0x1b1c, 0x1b20), .driver_info = USB_QUIRK_DELAY_INIT },
> +
>  	/* Acer C120 LED Projector */
>  	{ USB_DEVICE(0x1de1, 0xc102), .driver_info = USB_QUIRK_NO_LPM },
>  
>
Colin Ian King Sept. 11, 2017, 12:38 p.m. | #2
On 07/09/17 09:05, Kai-Heng Feng wrote:
> BugLink: https://bugs.launchpad.net/bugs/1678477
> 
> Corsair Strafe RGB keyboard has trouble to initialize:
> 
> [ 1.679455] usb 3-6: new full-speed USB device number 4 using xhci_hcd
> [ 6.871136] usb 3-6: unable to read config index 0 descriptor/all
> [ 6.871138] usb 3-6: can't read configurations, error -110
> [ 6.991019] usb 3-6: new full-speed USB device number 5 using xhci_hcd
> [ 12.246642] usb 3-6: unable to read config index 0 descriptor/all
> [ 12.246644] usb 3-6: can't read configurations, error -110
> [ 12.366555] usb 3-6: new full-speed USB device number 6 using xhci_hcd
> [ 17.622145] usb 3-6: unable to read config index 0 descriptor/all
> [ 17.622147] usb 3-6: can't read configurations, error -110
> [ 17.742093] usb 3-6: new full-speed USB device number 7 using xhci_hcd
> [ 22.997715] usb 3-6: unable to read config index 0 descriptor/all
> [ 22.997716] usb 3-6: can't read configurations, error -110
> 
> Although it may work after several times unpluging/pluging:
> 
> [ 68.195240] usb 3-6: new full-speed USB device number 11 using xhci_hcd
> [ 68.337459] usb 3-6: New USB device found, idVendor=1b1c, idProduct=1b20
> [ 68.337463] usb 3-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> [ 68.337466] usb 3-6: Product: Corsair STRAFE RGB Gaming Keyboard
> [ 68.337468] usb 3-6: Manufacturer: Corsair
> [ 68.337470] usb 3-6: SerialNumber: 0F013021AEB8046755A93ED3F5001941
> 
> Tried three quirks: USB_QUIRK_DELAY_INIT, USB_QUIRK_NO_LPM and
> USB_QUIRK_DEVICE_QUALIFIER, user confirmed that USB_QUIRK_DELAY_INIT alone
> can workaround this issue. Hence add the quirk for Corsair Strafe RGB.
> 
> BugLink: https://bugs.launchpad.net/bugs/1678477
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
> Cc: stable <stable@vger.kernel.org>
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> (cherry picked from commit de3af5bf259d7a0bfaac70441c8568ab5998d80c)
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
> ---
>  drivers/usb/core/quirks.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
> index 96b21b0dac1e..d87abbd75706 100644
> --- a/drivers/usb/core/quirks.c
> +++ b/drivers/usb/core/quirks.c
> @@ -214,6 +214,9 @@ static const struct usb_device_id usb_quirk_list[] = {
>  	{ USB_DEVICE(0x1a0a, 0x0200), .driver_info =
>  			USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL },
>  
> +	/* Corsair Strafe RGB */
> +	{ USB_DEVICE(0x1b1c, 0x1b20), .driver_info = USB_QUIRK_DELAY_INIT },
> +
>  	/* Acer C120 LED Projector */
>  	{ USB_DEVICE(0x1de1, 0xc102), .driver_info = USB_QUIRK_NO_LPM },
>  
> 
Restricted to specific device, clean cherry pick, positive test results.

Acked-by: Colin Ian King <colin.king@canonical.com>
Stefan Bader Sept. 15, 2017, 1:36 p.m. | #3
On 07.09.2017 10:05, Kai-Heng Feng wrote:
> BugLink: https://bugs.launchpad.net/bugs/1678477
> 
> Corsair Strafe RGB keyboard has trouble to initialize:
> 
> [ 1.679455] usb 3-6: new full-speed USB device number 4 using xhci_hcd
> [ 6.871136] usb 3-6: unable to read config index 0 descriptor/all
> [ 6.871138] usb 3-6: can't read configurations, error -110
> [ 6.991019] usb 3-6: new full-speed USB device number 5 using xhci_hcd
> [ 12.246642] usb 3-6: unable to read config index 0 descriptor/all
> [ 12.246644] usb 3-6: can't read configurations, error -110
> [ 12.366555] usb 3-6: new full-speed USB device number 6 using xhci_hcd
> [ 17.622145] usb 3-6: unable to read config index 0 descriptor/all
> [ 17.622147] usb 3-6: can't read configurations, error -110
> [ 17.742093] usb 3-6: new full-speed USB device number 7 using xhci_hcd
> [ 22.997715] usb 3-6: unable to read config index 0 descriptor/all
> [ 22.997716] usb 3-6: can't read configurations, error -110
> 
> Although it may work after several times unpluging/pluging:
> 
> [ 68.195240] usb 3-6: new full-speed USB device number 11 using xhci_hcd
> [ 68.337459] usb 3-6: New USB device found, idVendor=1b1c, idProduct=1b20
> [ 68.337463] usb 3-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> [ 68.337466] usb 3-6: Product: Corsair STRAFE RGB Gaming Keyboard
> [ 68.337468] usb 3-6: Manufacturer: Corsair
> [ 68.337470] usb 3-6: SerialNumber: 0F013021AEB8046755A93ED3F5001941
> 
> Tried three quirks: USB_QUIRK_DELAY_INIT, USB_QUIRK_NO_LPM and
> USB_QUIRK_DEVICE_QUALIFIER, user confirmed that USB_QUIRK_DELAY_INIT alone
> can workaround this issue. Hence add the quirk for Corsair Strafe RGB.
> 
> BugLink: https://bugs.launchpad.net/bugs/1678477
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
> Cc: stable <stable@vger.kernel.org>
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> (cherry picked from commit de3af5bf259d7a0bfaac70441c8568ab5998d80c)
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
> ---
>  drivers/usb/core/quirks.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
> index 96b21b0dac1e..d87abbd75706 100644
> --- a/drivers/usb/core/quirks.c
> +++ b/drivers/usb/core/quirks.c
> @@ -214,6 +214,9 @@ static const struct usb_device_id usb_quirk_list[] = {
>  	{ USB_DEVICE(0x1a0a, 0x0200), .driver_info =
>  			USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL },
>  
> +	/* Corsair Strafe RGB */
> +	{ USB_DEVICE(0x1b1c, 0x1b20), .driver_info = USB_QUIRK_DELAY_INIT },
> +
>  	/* Acer C120 LED Projector */
>  	{ USB_DEVICE(0x1de1, 0xc102), .driver_info = USB_QUIRK_NO_LPM },
>  
> 
Applied to Zesty master-next
Seth Forshee Sept. 20, 2017, 12:58 p.m. | #4
On Thu, Sep 07, 2017 at 04:05:23PM +0800, Kai-Heng Feng wrote:
> BugLink: https://bugs.launchpad.net/bugs/1678477
> 
> Corsair Strafe RGB keyboard has trouble to initialize:
> 
> [ 1.679455] usb 3-6: new full-speed USB device number 4 using xhci_hcd
> [ 6.871136] usb 3-6: unable to read config index 0 descriptor/all
> [ 6.871138] usb 3-6: can't read configurations, error -110
> [ 6.991019] usb 3-6: new full-speed USB device number 5 using xhci_hcd
> [ 12.246642] usb 3-6: unable to read config index 0 descriptor/all
> [ 12.246644] usb 3-6: can't read configurations, error -110
> [ 12.366555] usb 3-6: new full-speed USB device number 6 using xhci_hcd
> [ 17.622145] usb 3-6: unable to read config index 0 descriptor/all
> [ 17.622147] usb 3-6: can't read configurations, error -110
> [ 17.742093] usb 3-6: new full-speed USB device number 7 using xhci_hcd
> [ 22.997715] usb 3-6: unable to read config index 0 descriptor/all
> [ 22.997716] usb 3-6: can't read configurations, error -110
> 
> Although it may work after several times unpluging/pluging:
> 
> [ 68.195240] usb 3-6: new full-speed USB device number 11 using xhci_hcd
> [ 68.337459] usb 3-6: New USB device found, idVendor=1b1c, idProduct=1b20
> [ 68.337463] usb 3-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> [ 68.337466] usb 3-6: Product: Corsair STRAFE RGB Gaming Keyboard
> [ 68.337468] usb 3-6: Manufacturer: Corsair
> [ 68.337470] usb 3-6: SerialNumber: 0F013021AEB8046755A93ED3F5001941
> 
> Tried three quirks: USB_QUIRK_DELAY_INIT, USB_QUIRK_NO_LPM and
> USB_QUIRK_DEVICE_QUALIFIER, user confirmed that USB_QUIRK_DELAY_INIT alone
> can workaround this issue. Hence add the quirk for Corsair Strafe RGB.
> 
> BugLink: https://bugs.launchpad.net/bugs/1678477
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
> Cc: stable <stable@vger.kernel.org>
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> (cherry picked from commit de3af5bf259d7a0bfaac70441c8568ab5998d80c)
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>

This was applied to artful via the 4.13.1 stable update.

Patch

diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index 96b21b0dac1e..d87abbd75706 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -214,6 +214,9 @@  static const struct usb_device_id usb_quirk_list[] = {
 	{ USB_DEVICE(0x1a0a, 0x0200), .driver_info =
 			USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL },
 
+	/* Corsair Strafe RGB */
+	{ USB_DEVICE(0x1b1c, 0x1b20), .driver_info = USB_QUIRK_DELAY_INIT },
+
 	/* Acer C120 LED Projector */
 	{ USB_DEVICE(0x1de1, 0xc102), .driver_info = USB_QUIRK_NO_LPM },