linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO built-in usb-audio card
@ 2020-11-18  8:56 penghao
  2020-11-18  9:03 ` Sergei Shtylyov
  0 siblings, 1 reply; 10+ messages in thread
From: penghao @ 2020-11-18  8:56 UTC (permalink / raw)
  To: gregkh
  Cc: johan, jonathan, tomasz, penghao, hdegoede, dlaz, kai.heng.feng,
	richard.o.dodd, kerneldev, linux-usb, linux-kernel

Add a USB_QUIRK_DISCONNECT_SUSPEND quirk for the Lenovo TIO built-in
usb-audio. when A630Z going into S3,the system immediately wakeup 7-8
seconds later by usb-audio disconnect interrupt to avoids the issue.

Seeking a better fix, we've tried a lot of things, including:
 - Check that the device's power/wakeup is disabled
 - Check that remote wakeup is off at the USB level
 - All the quirks in drivers/usb/core/quirks.c
   e.g. USB_QUIRK_RESET_RESUME,
        USB_QUIRK_RESET,
        USB_QUIRK_IGNORE_REMOTE_WAKEUP,
        USB_QUIRK_NO_LPM.

but none of that makes any difference.

There are no errors in the logs showing any suspend/resume-related issues.
When the system wakes up due to the modem, log-wise it appears to be a
normal resume.

Introduce a quirk to disable the port during suspend when the modem is
detected.

Changes since v2
 - Add Changes commit format

Changes since v1
 - Change subject form "ALSA" to "USB:"
 - Adjust to approoriate line

Signed-off-by: penghao <penghao@uniontech.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 7c1198f80c23..25f655c2cd28 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -410,6 +410,10 @@ static const struct usb_device_id usb_quirk_list[] = {
 	{ USB_DEVICE(0x1532, 0x0116), .driver_info =
 			USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL },
 
+	/* Lenovo ThinkCenter A630Z TI024Gen3 usb-audio */
+	{ USB_DEVICE(0x17ef, 0xa012), .driver_info =
+			USB_QUIRK_DISCONNECT_SUSPEND },
+
 	/* BUILDWIN Photo Frame */
 	{ USB_DEVICE(0x1908, 0x1315), .driver_info =
 			USB_QUIRK_HONOR_BNUMINTERFACES },
@@ -430,6 +434,7 @@ static const struct usb_device_id usb_quirk_list[] = {
 	  USB_QUIRK_DELAY_CTRL_MSG },
 
 	/* Corsair Strafe RGB */
+
 	{ USB_DEVICE(0x1b1c, 0x1b20), .driver_info = USB_QUIRK_DELAY_INIT |
 	  USB_QUIRK_DELAY_CTRL_MSG },
 
-- 
2.11.0




^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH] USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO built-in usb-audio card
  2020-11-18  8:56 [PATCH] USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO built-in usb-audio card penghao
@ 2020-11-18  9:03 ` Sergei Shtylyov
  0 siblings, 0 replies; 10+ messages in thread
From: Sergei Shtylyov @ 2020-11-18  9:03 UTC (permalink / raw)
  To: penghao, gregkh
  Cc: johan, jonathan, tomasz, hdegoede, dlaz, kai.heng.feng,
	richard.o.dodd, kerneldev, linux-usb, linux-kernel

Hello!

On 18.11.2020 11:56, penghao wrote:

> Add a USB_QUIRK_DISCONNECT_SUSPEND quirk for the Lenovo TIO built-in
> usb-audio. when A630Z going into S3,the system immediately wakeup 7-8
> seconds later by usb-audio disconnect interrupt to avoids the issue.
> 
> Seeking a better fix, we've tried a lot of things, including:
>   - Check that the device's power/wakeup is disabled
>   - Check that remote wakeup is off at the USB level
>   - All the quirks in drivers/usb/core/quirks.c
>     e.g. USB_QUIRK_RESET_RESUME,
>          USB_QUIRK_RESET,
>          USB_QUIRK_IGNORE_REMOTE_WAKEUP,
>          USB_QUIRK_NO_LPM.
> 
> but none of that makes any difference.
> 
> There are no errors in the logs showing any suspend/resume-related issues.
> When the system wakes up due to the modem, log-wise it appears to be a
> normal resume.
> 
> Introduce a quirk to disable the port during suspend when the modem is
> detected.
> 
> Changes since v2
>   - Add Changes commit format
> 
> Changes since v1
>   - Change subject form "ALSA" to "USB:"
>   - Adjust to approoriate line

    Appropriate.

> 
> Signed-off-by: penghao <penghao@uniontech.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 7c1198f80c23..25f655c2cd28 100644
> --- a/drivers/usb/core/quirks.c
> +++ b/drivers/usb/core/quirks.c
[...]
> @@ -430,6 +434,7 @@ static const struct usb_device_id usb_quirk_list[] = {
>   	  USB_QUIRK_DELAY_CTRL_MSG },
>   
>   	/* Corsair Strafe RGB */
> +

    Why? :-/

>   	{ USB_DEVICE(0x1b1c, 0x1b20), .driver_info = USB_QUIRK_DELAY_INIT |
>   	  USB_QUIRK_DELAY_CTRL_MSG },
>   

MBR, Sergei

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO built-in usb-audio card
  2020-11-18 12:30 penghao
@ 2020-11-18 13:08 ` Kai-Heng Feng
  0 siblings, 0 replies; 10+ messages in thread
From: Kai-Heng Feng @ 2020-11-18 13:08 UTC (permalink / raw)
  To: penghao
  Cc: Greg Kroah-Hartman, johan, jonathan, tomasz, Hans de Goede, dlaz,
	richard.o.dodd, kerneldev, linux-usb, linux-kernel

Hi penghao,

> On Nov 18, 2020, at 20:30, penghao <penghao@uniontech.com> wrote:
> 
> Add a USB_QUIRK_DISCONNECT_SUSPEND quirk for the Lenovo TIO built-in
> usb-audio. when A630Z going into S3,the system immediately wakeup 7-8
> seconds later by usb-audio disconnect interrupt to avoids the issue.
> eg dmesg:
> ....
> [  626.974091 ] usb 7-1.1: USB disconnect, device number 3
> ....
> ....
> [ 1774.486691] usb 7-1.1: new full-speed USB device number 5 using xhci_hcd
> [ 1774.947742] usb 7-1.1: New USB device found, idVendor=17ef, idProduct=a012, bcdDevice= 0.55
> [ 1774.956588] usb 7-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> [ 1774.964339] usb 7-1.1: Product: Thinkcentre TIO24Gen3 for USB-audio
> [ 1774.970999] usb 7-1.1: Manufacturer: Lenovo
> [ 1774.975447] usb 7-1.1: SerialNumber: 000000000000
> [ 1775.048590] usb 7-1.1: 2:1: cannot get freq at ep 0x1

Can you please attach full dmesg with dynamic debug enabled when the issue happens?

We may need to poll for U3 in xhci_bus_suspend().

Kai-Heng

> .......
> Seeking a better fix, we've tried a lot of things, including:
> - Check that the device's power/wakeup is disabled
> - Check that remote wakeup is off at the USB level
> - All the quirks in drivers/usb/core/quirks.c
>   e.g. USB_QUIRK_RESET_RESUME,
>        USB_QUIRK_RESET,
>        USB_QUIRK_IGNORE_REMOTE_WAKEUP,
>        USB_QUIRK_NO_LPM.
> 
> but none of that makes any difference.
> 
> There are no errors in the logs showing any suspend/resume-related issues.
> When the system wakes up due to the modem, log-wise it appears to be a
> normal resume.
> 
> Introduce a quirk to disable the port during suspend when the modem is
> detected.
> 
> Changes since v5
> - Add dmesg for this issue
> 
> Changes since v4
> - Fixed add a blank line
> 
> Changes since v3
> - Fixed spelling error on appropriate
> 
> Changes since v2
> - Add Changes commit format
> 
> Changes since v1
> - Change subject form "ALSA" to "USB:"
> - Adjust to appropriate line
> 
> Signed-off-by: penghao <penghao@uniontech.com>
> ---
> drivers/usb/core/quirks.c | 4 ++++
> 1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
> index 7c1198f80c23..26b852ae0d85 100644
> --- a/drivers/usb/core/quirks.c
> +++ b/drivers/usb/core/quirks.c
> @@ -410,6 +410,10 @@ static const struct usb_device_id usb_quirk_list[] = {
> 	{ USB_DEVICE(0x1532, 0x0116), .driver_info =
> 			USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL },
> 
> +	/* Lenovo ThinkCenter A630Z TI024Gen3 usb-audio */
> +	{ USB_DEVICE(0x17ef, 0xa012), .driver_info =
> +			USB_QUIRK_DISCONNECT_SUSPEND },
> +
> 	/* BUILDWIN Photo Frame */
> 	{ USB_DEVICE(0x1908, 0x1315), .driver_info =
> 			USB_QUIRK_HONOR_BNUMINTERFACES },
> -- 
> 2.11.0
> 
> 
> 


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH] USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO built-in usb-audio card
@ 2020-11-18 12:30 penghao
  2020-11-18 13:08 ` Kai-Heng Feng
  0 siblings, 1 reply; 10+ messages in thread
From: penghao @ 2020-11-18 12:30 UTC (permalink / raw)
  To: gregkh
  Cc: johan, jonathan, tomasz, penghao, hdegoede, dlaz, kai.heng.feng,
	richard.o.dodd, kerneldev, linux-usb, linux-kernel

Add a USB_QUIRK_DISCONNECT_SUSPEND quirk for the Lenovo TIO built-in
usb-audio. when A630Z going into S3,the system immediately wakeup 7-8
seconds later by usb-audio disconnect interrupt to avoids the issue.
eg dmesg:
....
[  626.974091 ] usb 7-1.1: USB disconnect, device number 3
....
....
[ 1774.486691] usb 7-1.1: new full-speed USB device number 5 using xhci_hcd
[ 1774.947742] usb 7-1.1: New USB device found, idVendor=17ef, idProduct=a012, bcdDevice= 0.55
[ 1774.956588] usb 7-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1774.964339] usb 7-1.1: Product: Thinkcentre TIO24Gen3 for USB-audio
[ 1774.970999] usb 7-1.1: Manufacturer: Lenovo
[ 1774.975447] usb 7-1.1: SerialNumber: 000000000000
[ 1775.048590] usb 7-1.1: 2:1: cannot get freq at ep 0x1
.......
Seeking a better fix, we've tried a lot of things, including:
 - Check that the device's power/wakeup is disabled
 - Check that remote wakeup is off at the USB level
 - All the quirks in drivers/usb/core/quirks.c
   e.g. USB_QUIRK_RESET_RESUME,
        USB_QUIRK_RESET,
        USB_QUIRK_IGNORE_REMOTE_WAKEUP,
        USB_QUIRK_NO_LPM.

but none of that makes any difference.

There are no errors in the logs showing any suspend/resume-related issues.
When the system wakes up due to the modem, log-wise it appears to be a
normal resume.

Introduce a quirk to disable the port during suspend when the modem is
detected.

Changes since v5
 - Add dmesg for this issue

Changes since v4
 - Fixed add a blank line

 Changes since v3
 - Fixed spelling error on appropriate

Changes since v2
 - Add Changes commit format

Changes since v1
 - Change subject form "ALSA" to "USB:"
 - Adjust to appropriate line

Signed-off-by: penghao <penghao@uniontech.com>
---
 drivers/usb/core/quirks.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index 7c1198f80c23..26b852ae0d85 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -410,6 +410,10 @@ static const struct usb_device_id usb_quirk_list[] = {
 	{ USB_DEVICE(0x1532, 0x0116), .driver_info =
 			USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL },
 
+	/* Lenovo ThinkCenter A630Z TI024Gen3 usb-audio */
+	{ USB_DEVICE(0x17ef, 0xa012), .driver_info =
+			USB_QUIRK_DISCONNECT_SUSPEND },
+
 	/* BUILDWIN Photo Frame */
 	{ USB_DEVICE(0x1908, 0x1315), .driver_info =
 			USB_QUIRK_HONOR_BNUMINTERFACES },
-- 
2.11.0




^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH] USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO built-in usb-audio card
  2020-11-18 11:06 penghao
@ 2020-11-18 11:25 ` Kai-Heng Feng
  0 siblings, 0 replies; 10+ messages in thread
From: Kai-Heng Feng @ 2020-11-18 11:25 UTC (permalink / raw)
  To: penghao
  Cc: Greg Kroah-Hartman, johan, jonathan, tomasz, hdegoede, dlaz,
	richard.o.dodd, kerneldev, linux-usb, linux-kernel

Hi penghao,

> On Nov 18, 2020, at 19:06, penghao <penghao@uniontech.com> wrote:
> 
> Add a USB_QUIRK_DISCONNECT_SUSPEND quirk for the Lenovo TIO built-in
> usb-audio. when A630Z going into S3,the system immediately wakeup 7-8
> seconds later by usb-audio disconnect interrupt to avoids the issue.
> 
> Seeking a better fix, we've tried a lot of things, including:
> - Check that the device's power/wakeup is disabled
> - Check that remote wakeup is off at the USB level
> - All the quirks in drivers/usb/core/quirks.c
>   e.g. USB_QUIRK_RESET_RESUME,
>        USB_QUIRK_RESET,
>        USB_QUIRK_IGNORE_REMOTE_WAKEUP,
>        USB_QUIRK_NO_LPM.
> 
> but none of that makes any difference.
> 
> There are no errors in the logs showing any suspend/resume-related issues.
> When the system wakes up due to the modem, log-wise it appears to be a
> normal resume.
> 
> Introduce a quirk to disable the port during suspend when the modem is
> detected.
> 
> Changes since v4
> - Fixed add a blank line
> 
> Changes since v3
> - Fixed spelling error on appropriate
> 
> Changes since v2
> - Add Changes commit format
> 
> Changes since v1
> - Change subject form "ALSA" to "USB:"
> - Adjust to appropriate line
> 
> Signed-off-by: penghao <penghao@uniontech.com>
> ---
> drivers/usb/core/quirks.c | 4 ++++
> 1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
> index 7c1198f80c23..26b852ae0d85 100644
> --- a/drivers/usb/core/quirks.c
> +++ b/drivers/usb/core/quirks.c
> @@ -410,6 +410,10 @@ static const struct usb_device_id usb_quirk_list[] = {
> 	{ USB_DEVICE(0x1532, 0x0116), .driver_info =
> 			USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL },
> 
> +	/* Lenovo ThinkCenter A630Z TI024Gen3 usb-audio */
> +	{ USB_DEVICE(0x17ef, 0xa012), .driver_info =
> +			USB_QUIRK_DISCONNECT_SUSPEND },
> +

Would it be possible to enable dynamic debug, reproduce the issue, and attach dmesg here? i.e.
# echo 'file drivers/usb/* +p; file drivers/usb/host/* +p' > /sys/kernel/debug/dynamic_debug/control
# echo mem > /sys/power/state
... and attach dmesg here.

Kai-Heng

> 	/* BUILDWIN Photo Frame */
> 	{ USB_DEVICE(0x1908, 0x1315), .driver_info =
> 			USB_QUIRK_HONOR_BNUMINTERFACES },
> -- 
> 2.11.0
> 
> 
> 


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH] USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO built-in usb-audio card
@ 2020-11-18 11:06 penghao
  2020-11-18 11:25 ` Kai-Heng Feng
  0 siblings, 1 reply; 10+ messages in thread
From: penghao @ 2020-11-18 11:06 UTC (permalink / raw)
  To: gregkh
  Cc: johan, jonathan, tomasz, penghao, hdegoede, dlaz, kai.heng.feng,
	richard.o.dodd, kerneldev, linux-usb, linux-kernel

Add a USB_QUIRK_DISCONNECT_SUSPEND quirk for the Lenovo TIO built-in
usb-audio. when A630Z going into S3,the system immediately wakeup 7-8
seconds later by usb-audio disconnect interrupt to avoids the issue.

Seeking a better fix, we've tried a lot of things, including:
 - Check that the device's power/wakeup is disabled
 - Check that remote wakeup is off at the USB level
 - All the quirks in drivers/usb/core/quirks.c
   e.g. USB_QUIRK_RESET_RESUME,
        USB_QUIRK_RESET,
        USB_QUIRK_IGNORE_REMOTE_WAKEUP,
        USB_QUIRK_NO_LPM.

but none of that makes any difference.

There are no errors in the logs showing any suspend/resume-related issues.
When the system wakes up due to the modem, log-wise it appears to be a
normal resume.

Introduce a quirk to disable the port during suspend when the modem is
detected.

Changes since v4
 - Fixed add a blank line

 Changes since v3
 - Fixed spelling error on appropriate

Changes since v2
 - Add Changes commit format

Changes since v1
 - Change subject form "ALSA" to "USB:"
 - Adjust to appropriate line

Signed-off-by: penghao <penghao@uniontech.com>
---
 drivers/usb/core/quirks.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index 7c1198f80c23..26b852ae0d85 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -410,6 +410,10 @@ static const struct usb_device_id usb_quirk_list[] = {
 	{ USB_DEVICE(0x1532, 0x0116), .driver_info =
 			USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL },
 
+	/* Lenovo ThinkCenter A630Z TI024Gen3 usb-audio */
+	{ USB_DEVICE(0x17ef, 0xa012), .driver_info =
+			USB_QUIRK_DISCONNECT_SUSPEND },
+
 	/* BUILDWIN Photo Frame */
 	{ USB_DEVICE(0x1908, 0x1315), .driver_info =
 			USB_QUIRK_HONOR_BNUMINTERFACES },
-- 
2.11.0




^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH] USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO built-in usb-audio card
  2020-11-18  9:53 penghao
@ 2020-11-18 10:20 ` Greg KH
  0 siblings, 0 replies; 10+ messages in thread
From: Greg KH @ 2020-11-18 10:20 UTC (permalink / raw)
  To: penghao
  Cc: johan, jonathan, tomasz, hdegoede, dlaz, kai.heng.feng,
	richard.o.dodd, kerneldev, linux-usb, linux-kernel

On Wed, Nov 18, 2020 at 05:53:43PM +0800, penghao wrote:
> Add a USB_QUIRK_DISCONNECT_SUSPEND quirk for the Lenovo TIO built-in
> usb-audio. when A630Z going into S3,the system immediately wakeup 7-8
> seconds later by usb-audio disconnect interrupt to avoids the issue.
> 
> Seeking a better fix, we've tried a lot of things, including:
>  - Check that the device's power/wakeup is disabled
>  - Check that remote wakeup is off at the USB level
>  - All the quirks in drivers/usb/core/quirks.c
>    e.g. USB_QUIRK_RESET_RESUME,
>         USB_QUIRK_RESET,
>         USB_QUIRK_IGNORE_REMOTE_WAKEUP,
>         USB_QUIRK_NO_LPM.
> 
> but none of that makes any difference.
> 
> There are no errors in the logs showing any suspend/resume-related issues.
> When the system wakes up due to the modem, log-wise it appears to be a
> normal resume.
> 
> Introduce a quirk to disable the port during suspend when the modem is
> detected.
> 
> Changes since v3
>  - Fixed spelling error on appropriate
> 
> Changes since v2
>  - Add Changes commit format
> 
> Changes since v1
>  - Change subject form "ALSA" to "USB:"
>  - Adjust to appropriate line
> 
> Signed-off-by: penghao <penghao@uniontech.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 7c1198f80c23..25f655c2cd28 100644
> --- a/drivers/usb/core/quirks.c
> +++ b/drivers/usb/core/quirks.c
> @@ -410,6 +410,10 @@ static const struct usb_device_id usb_quirk_list[] = {
>  	{ USB_DEVICE(0x1532, 0x0116), .driver_info =
>  			USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL },
>  
> +	/* Lenovo ThinkCenter A630Z TI024Gen3 usb-audio */
> +	{ USB_DEVICE(0x17ef, 0xa012), .driver_info =
> +			USB_QUIRK_DISCONNECT_SUSPEND },
> +
>  	/* BUILDWIN Photo Frame */
>  	{ USB_DEVICE(0x1908, 0x1315), .driver_info =
>  			USB_QUIRK_HONOR_BNUMINTERFACES },
> @@ -430,6 +434,7 @@ static const struct usb_device_id usb_quirk_list[] = {
>  	  USB_QUIRK_DELAY_CTRL_MSG },
>  
>  	/* Corsair Strafe RGB */
> +

You are still leaving this blank line being added to the file, please do
not do that.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH] USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO built-in usb-audio card
@ 2020-11-18  9:53 penghao
  2020-11-18 10:20 ` Greg KH
  0 siblings, 1 reply; 10+ messages in thread
From: penghao @ 2020-11-18  9:53 UTC (permalink / raw)
  To: gregkh
  Cc: johan, jonathan, tomasz, penghao, hdegoede, dlaz, kai.heng.feng,
	richard.o.dodd, kerneldev, linux-usb, linux-kernel

Add a USB_QUIRK_DISCONNECT_SUSPEND quirk for the Lenovo TIO built-in
usb-audio. when A630Z going into S3,the system immediately wakeup 7-8
seconds later by usb-audio disconnect interrupt to avoids the issue.

Seeking a better fix, we've tried a lot of things, including:
 - Check that the device's power/wakeup is disabled
 - Check that remote wakeup is off at the USB level
 - All the quirks in drivers/usb/core/quirks.c
   e.g. USB_QUIRK_RESET_RESUME,
        USB_QUIRK_RESET,
        USB_QUIRK_IGNORE_REMOTE_WAKEUP,
        USB_QUIRK_NO_LPM.

but none of that makes any difference.

There are no errors in the logs showing any suspend/resume-related issues.
When the system wakes up due to the modem, log-wise it appears to be a
normal resume.

Introduce a quirk to disable the port during suspend when the modem is
detected.

Changes since v3
 - Fixed spelling error on appropriate

Changes since v2
 - Add Changes commit format

Changes since v1
 - Change subject form "ALSA" to "USB:"
 - Adjust to appropriate line

Signed-off-by: penghao <penghao@uniontech.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 7c1198f80c23..25f655c2cd28 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -410,6 +410,10 @@ static const struct usb_device_id usb_quirk_list[] = {
 	{ USB_DEVICE(0x1532, 0x0116), .driver_info =
 			USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL },
 
+	/* Lenovo ThinkCenter A630Z TI024Gen3 usb-audio */
+	{ USB_DEVICE(0x17ef, 0xa012), .driver_info =
+			USB_QUIRK_DISCONNECT_SUSPEND },
+
 	/* BUILDWIN Photo Frame */
 	{ USB_DEVICE(0x1908, 0x1315), .driver_info =
 			USB_QUIRK_HONOR_BNUMINTERFACES },
@@ -430,6 +434,7 @@ static const struct usb_device_id usb_quirk_list[] = {
 	  USB_QUIRK_DELAY_CTRL_MSG },
 
 	/* Corsair Strafe RGB */
+
 	{ USB_DEVICE(0x1b1c, 0x1b20), .driver_info = USB_QUIRK_DELAY_INIT |
 	  USB_QUIRK_DELAY_CTRL_MSG },
 
-- 
2.11.0




^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH] USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO built-in usb-audio card
  2020-11-18  9:26 penghao
@ 2020-11-18  9:34 ` Greg KH
  0 siblings, 0 replies; 10+ messages in thread
From: Greg KH @ 2020-11-18  9:34 UTC (permalink / raw)
  To: penghao
  Cc: johan, jonathan, tomasz, hdegoede, dlaz, kai.heng.feng,
	richard.o.dodd, kerneldev, linux-usb, linux-kernel

On Wed, Nov 18, 2020 at 05:26:56PM +0800, penghao wrote:
> Add a USB_QUIRK_DISCONNECT_SUSPEND quirk for the Lenovo TIO built-in
> usb-audio. when A630Z going into S3,the system immediately wakeup 7-8
> seconds later by usb-audio disconnect interrupt to avoids the issue.
> 
> Seeking a better fix, we've tried a lot of things, including:
>  - Check that the device's power/wakeup is disabled
>  - Check that remote wakeup is off at the USB level
>  - All the quirks in drivers/usb/core/quirks.c
>    e.g. USB_QUIRK_RESET_RESUME,
>         USB_QUIRK_RESET,
>         USB_QUIRK_IGNORE_REMOTE_WAKEUP,
>         USB_QUIRK_NO_LPM.
> 
> but none of that makes any difference.
> 
> There are no errors in the logs showing any suspend/resume-related issues.
> When the system wakes up due to the modem, log-wise it appears to be a
> normal resume.
> 
> Introduce a quirk to disable the port during suspend when the modem is
> detected.
> 
> Changes approoriate to appropriate
> 
> Changes since v2
>  - Add Changes commit format
> 
> Changes since v1
>  - Change subject form "ALSA" to "USB:"
>  - Adjust to appropriate line

You don't have a "version" in the subject line, what one is this?


> 
> Signed-off-by: penghao <penghao@uniontech.com>

Is that the name/characters you sign legal documents with?  If so,
great, but I have to ask.

> ---
>  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 7c1198f80c23..25f655c2cd28 100644
> --- a/drivers/usb/core/quirks.c
> +++ b/drivers/usb/core/quirks.c
> @@ -410,6 +410,10 @@ static const struct usb_device_id usb_quirk_list[] = {
>  	{ USB_DEVICE(0x1532, 0x0116), .driver_info =
>  			USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL },
>  
> +	/* Lenovo ThinkCenter A630Z TI024Gen3 usb-audio */
> +	{ USB_DEVICE(0x17ef, 0xa012), .driver_info =
> +			USB_QUIRK_DISCONNECT_SUSPEND },
> +
>  	/* BUILDWIN Photo Frame */
>  	{ USB_DEVICE(0x1908, 0x1315), .driver_info =
>  			USB_QUIRK_HONOR_BNUMINTERFACES },
> @@ -430,6 +434,7 @@ static const struct usb_device_id usb_quirk_list[] = {
>  	  USB_QUIRK_DELAY_CTRL_MSG },
>  
>  	/* Corsair Strafe RGB */
> +

Why are you adding this blank line for no reason?

Please fix.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH] USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO built-in usb-audio card
@ 2020-11-18  9:26 penghao
  2020-11-18  9:34 ` Greg KH
  0 siblings, 1 reply; 10+ messages in thread
From: penghao @ 2020-11-18  9:26 UTC (permalink / raw)
  To: gregkh
  Cc: johan, jonathan, tomasz, penghao, hdegoede, dlaz, kai.heng.feng,
	richard.o.dodd, kerneldev, linux-usb, linux-kernel

Add a USB_QUIRK_DISCONNECT_SUSPEND quirk for the Lenovo TIO built-in
usb-audio. when A630Z going into S3,the system immediately wakeup 7-8
seconds later by usb-audio disconnect interrupt to avoids the issue.

Seeking a better fix, we've tried a lot of things, including:
 - Check that the device's power/wakeup is disabled
 - Check that remote wakeup is off at the USB level
 - All the quirks in drivers/usb/core/quirks.c
   e.g. USB_QUIRK_RESET_RESUME,
        USB_QUIRK_RESET,
        USB_QUIRK_IGNORE_REMOTE_WAKEUP,
        USB_QUIRK_NO_LPM.

but none of that makes any difference.

There are no errors in the logs showing any suspend/resume-related issues.
When the system wakes up due to the modem, log-wise it appears to be a
normal resume.

Introduce a quirk to disable the port during suspend when the modem is
detected.

Changes approoriate to appropriate

Changes since v2
 - Add Changes commit format

Changes since v1
 - Change subject form "ALSA" to "USB:"
 - Adjust to appropriate line

Signed-off-by: penghao <penghao@uniontech.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 7c1198f80c23..25f655c2cd28 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -410,6 +410,10 @@ static const struct usb_device_id usb_quirk_list[] = {
 	{ USB_DEVICE(0x1532, 0x0116), .driver_info =
 			USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL },
 
+	/* Lenovo ThinkCenter A630Z TI024Gen3 usb-audio */
+	{ USB_DEVICE(0x17ef, 0xa012), .driver_info =
+			USB_QUIRK_DISCONNECT_SUSPEND },
+
 	/* BUILDWIN Photo Frame */
 	{ USB_DEVICE(0x1908, 0x1315), .driver_info =
 			USB_QUIRK_HONOR_BNUMINTERFACES },
@@ -430,6 +434,7 @@ static const struct usb_device_id usb_quirk_list[] = {
 	  USB_QUIRK_DELAY_CTRL_MSG },
 
 	/* Corsair Strafe RGB */
+
 	{ USB_DEVICE(0x1b1c, 0x1b20), .driver_info = USB_QUIRK_DELAY_INIT |
 	  USB_QUIRK_DELAY_CTRL_MSG },
 
-- 
2.11.0




^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2020-11-18 13:09 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-18  8:56 [PATCH] USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO built-in usb-audio card penghao
2020-11-18  9:03 ` Sergei Shtylyov
2020-11-18  9:26 penghao
2020-11-18  9:34 ` Greg KH
2020-11-18  9:53 penghao
2020-11-18 10:20 ` Greg KH
2020-11-18 11:06 penghao
2020-11-18 11:25 ` Kai-Heng Feng
2020-11-18 12:30 penghao
2020-11-18 13:08 ` Kai-Heng Feng

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).