[SRU,Bionic,1/1] USB: quirks: Add no-lpm quirk for Raydium touchscreens

Message ID 20181108074849.29070-2-kai.heng.feng@canonical.com
State New
Headers show
Series
  • Disable LPM for Raydium Touchscreens
Related show

Commit Message

Kai-Heng Feng Nov. 8, 2018, 7:48 a.m.
BugLink: https://bugs.launchpad.net/bugs/1802248

Raydium USB touchscreen fails to set config if LPM is enabled:
[    2.030658] usb 1-8: New USB device found, idVendor=2386, idProduct=3119
[    2.030659] usb 1-8: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    2.030660] usb 1-8: Product: Raydium Touch System
[    2.030661] usb 1-8: Manufacturer: Raydium Corporation
[    7.132209] usb 1-8: can't set config #1, error -110

Same behavior can be observed on 2386:3114.

Raydium claims the touchscreen supports LPM under Windows, so I used
Microsoft USB Test Tools (MUTT) [1] to check its LPM status. MUTT shows
that the LPM doesn't work under Windows, either. So let's just disable LPM
for Raydium touchscreens.

[1] https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/usb-test-tools

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>
(backported from commit deefd24228a172d1b27d4a9adbfd2cdacd60ae64 linux-next)
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
---
 drivers/usb/core/quirks.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Anthony Wong Nov. 28, 2018, 1:30 p.m. | #1
On Thu, Nov 08, 2018 at 07:48:48AM +0000, Kai-Heng Feng wrote:
> BugLink: https://bugs.launchpad.net/bugs/1802248
> 
> Raydium USB touchscreen fails to set config if LPM is enabled:
> [    2.030658] usb 1-8: New USB device found, idVendor=2386, idProduct=3119
> [    2.030659] usb 1-8: New USB device strings: Mfr=1, Product=2, SerialNumber=0
> [    2.030660] usb 1-8: Product: Raydium Touch System
> [    2.030661] usb 1-8: Manufacturer: Raydium Corporation
> [    7.132209] usb 1-8: can't set config #1, error -110
> 
> Same behavior can be observed on 2386:3114.
> 
> Raydium claims the touchscreen supports LPM under Windows, so I used
> Microsoft USB Test Tools (MUTT) [1] to check its LPM status. MUTT shows
> that the LPM doesn't work under Windows, either. So let's just disable LPM
> for Raydium touchscreens.
> 
> [1] https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/usb-test-tools
> 
> 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>
> (backported from commit deefd24228a172d1b27d4a9adbfd2cdacd60ae64 linux-next)
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
> ---
>  drivers/usb/core/quirks.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
> index 7909262a715d..51f962d5a113 100644
> --- a/drivers/usb/core/quirks.c
> +++ b/drivers/usb/core/quirks.c
> @@ -403,6 +403,11 @@ static const struct usb_device_id usb_quirk_list[] = {
>  	{ USB_DEVICE(0x2040, 0x7200), .driver_info =
>  			USB_QUIRK_CONFIG_INTF_STRINGS },
>  
> +	/* Raydium Touchscreen */
> +	{ USB_DEVICE(0x2386, 0x3114), .driver_info = USB_QUIRK_NO_LPM },
> +
> +	{ USB_DEVICE(0x2386, 0x3119), .driver_info = USB_QUIRK_NO_LPM },
> +
>  	/* INTEL VALUE SSD */
>  	{ USB_DEVICE(0x8086, 0xf1a5), .driver_info = USB_QUIRK_RESET_RESUME },
>  
> -- 
> 2.17.1

Acked-by: Anthony Wong <anthony.wong@canonical.com>
AceLan Kao Nov. 29, 2018, 7:40 a.m. | #2
Acked-By: AceLan Kao <acelan.kao@canonical.com>
Stefan Bader Jan. 7, 2019, 3:11 p.m. | #3
On 08.11.18 08:48, Kai-Heng Feng wrote:
> BugLink: https://bugs.launchpad.net/bugs/1802248
> 
> Raydium USB touchscreen fails to set config if LPM is enabled:
> [    2.030658] usb 1-8: New USB device found, idVendor=2386, idProduct=3119
> [    2.030659] usb 1-8: New USB device strings: Mfr=1, Product=2, SerialNumber=0
> [    2.030660] usb 1-8: Product: Raydium Touch System
> [    2.030661] usb 1-8: Manufacturer: Raydium Corporation
> [    7.132209] usb 1-8: can't set config #1, error -110
> 
> Same behavior can be observed on 2386:3114.
> 
> Raydium claims the touchscreen supports LPM under Windows, so I used
> Microsoft USB Test Tools (MUTT) [1] to check its LPM status. MUTT shows
> that the LPM doesn't work under Windows, either. So let's just disable LPM
> for Raydium touchscreens.
> 
> [1] https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/usb-test-tools
> 
> 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>
> (backported from commit deefd24228a172d1b27d4a9adbfd2cdacd60ae64 linux-next)
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>
> ---

Now upstream with same SHA1 ub v4.20-rc4

>  drivers/usb/core/quirks.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
> index 7909262a715d..51f962d5a113 100644
> --- a/drivers/usb/core/quirks.c
> +++ b/drivers/usb/core/quirks.c
> @@ -403,6 +403,11 @@ static const struct usb_device_id usb_quirk_list[] = {
>  	{ USB_DEVICE(0x2040, 0x7200), .driver_info =
>  			USB_QUIRK_CONFIG_INTF_STRINGS },
>  
> +	/* Raydium Touchscreen */
> +	{ USB_DEVICE(0x2386, 0x3114), .driver_info = USB_QUIRK_NO_LPM },
> +
> +	{ USB_DEVICE(0x2386, 0x3119), .driver_info = USB_QUIRK_NO_LPM },
> +
>  	/* INTEL VALUE SSD */
>  	{ USB_DEVICE(0x8086, 0xf1a5), .driver_info = USB_QUIRK_RESET_RESUME },
>  
>
Kleber Souza Jan. 10, 2019, 10:45 a.m. | #4
On 11/8/18 8:48 AM, Kai-Heng Feng wrote:
> BugLink: https://bugs.launchpad.net/bugs/1802248
>
> Raydium USB touchscreen fails to set config if LPM is enabled:
> [    2.030658] usb 1-8: New USB device found, idVendor=2386, idProduct=3119
> [    2.030659] usb 1-8: New USB device strings: Mfr=1, Product=2, SerialNumber=0
> [    2.030660] usb 1-8: Product: Raydium Touch System
> [    2.030661] usb 1-8: Manufacturer: Raydium Corporation
> [    7.132209] usb 1-8: can't set config #1, error -110
>
> Same behavior can be observed on 2386:3114.
>
> Raydium claims the touchscreen supports LPM under Windows, so I used
> Microsoft USB Test Tools (MUTT) [1] to check its LPM status. MUTT shows
> that the LPM doesn't work under Windows, either. So let's just disable LPM
> for Raydium touchscreens.
>
> [1] https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/usb-test-tools
>
> 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>
> (backported from commit deefd24228a172d1b27d4a9adbfd2cdacd60ae64 linux-next)
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
> ---
>  drivers/usb/core/quirks.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
> index 7909262a715d..51f962d5a113 100644
> --- a/drivers/usb/core/quirks.c
> +++ b/drivers/usb/core/quirks.c
> @@ -403,6 +403,11 @@ static const struct usb_device_id usb_quirk_list[] = {
>  	{ USB_DEVICE(0x2040, 0x7200), .driver_info =
>  			USB_QUIRK_CONFIG_INTF_STRINGS },
>  
> +	/* Raydium Touchscreen */
> +	{ USB_DEVICE(0x2386, 0x3114), .driver_info = USB_QUIRK_NO_LPM },
> +
> +	{ USB_DEVICE(0x2386, 0x3119), .driver_info = USB_QUIRK_NO_LPM },
> +
>  	/* INTEL VALUE SSD */
>  	{ USB_DEVICE(0x8086, 0xf1a5), .driver_info = USB_QUIRK_RESET_RESUME },
>  

Applied to bionic/master-next branch, removing the "linux-next" part
from the provenance since it's now on mainline as pointed out by Stefan.

Thanks,
Kleber

Patch

diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index 7909262a715d..51f962d5a113 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -403,6 +403,11 @@  static const struct usb_device_id usb_quirk_list[] = {
 	{ USB_DEVICE(0x2040, 0x7200), .driver_info =
 			USB_QUIRK_CONFIG_INTF_STRINGS },
 
+	/* Raydium Touchscreen */
+	{ USB_DEVICE(0x2386, 0x3114), .driver_info = USB_QUIRK_NO_LPM },
+
+	{ USB_DEVICE(0x2386, 0x3119), .driver_info = USB_QUIRK_NO_LPM },
+
 	/* INTEL VALUE SSD */
 	{ USB_DEVICE(0x8086, 0xf1a5), .driver_info = USB_QUIRK_RESET_RESUME },