1 From 9ca57518361418ad5ae7dc38a2128fbf4855e1a2 Mon Sep 17 00:00:00 2001
2 From: penghao <penghao@uniontech.com>
3 Date: Wed, 18 Nov 2020 20:30:39 +0800
4 Subject: USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO built-in usb-audio card
6 From: penghao <penghao@uniontech.com>
8 commit 9ca57518361418ad5ae7dc38a2128fbf4855e1a2 upstream.
10 Add a USB_QUIRK_DISCONNECT_SUSPEND quirk for the Lenovo TIO built-in
11 usb-audio. when A630Z going into S3,the system immediately wakeup 7-8
12 seconds later by usb-audio disconnect interrupt to avoids the issue.
15 [ 626.974091 ] usb 7-1.1: USB disconnect, device number 3
18 [ 1774.486691] usb 7-1.1: new full-speed USB device number 5 using xhci_hcd
19 [ 1774.947742] usb 7-1.1: New USB device found, idVendor=17ef, idProduct=a012, bcdDevice= 0.55
20 [ 1774.956588] usb 7-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
21 [ 1774.964339] usb 7-1.1: Product: Thinkcentre TIO24Gen3 for USB-audio
22 [ 1774.970999] usb 7-1.1: Manufacturer: Lenovo
23 [ 1774.975447] usb 7-1.1: SerialNumber: 000000000000
24 [ 1775.048590] usb 7-1.1: 2:1: cannot get freq at ep 0x1
26 Seeking a better fix, we've tried a lot of things, including:
27 - Check that the device's power/wakeup is disabled
28 - Check that remote wakeup is off at the USB level
29 - All the quirks in drivers/usb/core/quirks.c
30 e.g. USB_QUIRK_RESET_RESUME,
32 USB_QUIRK_IGNORE_REMOTE_WAKEUP,
35 but none of that makes any difference.
37 There are no errors in the logs showing any suspend/resume-related issues.
38 When the system wakes up due to the modem, log-wise it appears to be a
41 Introduce a quirk to disable the port during suspend when the modem is
44 Signed-off-by: penghao <penghao@uniontech.com>
45 Link: https://lore.kernel.org/r/20201118123039.11696-1-penghao@uniontech.com
46 Cc: stable <stable@vger.kernel.org>
47 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
50 drivers/usb/core/quirks.c | 4 ++++
51 1 file changed, 4 insertions(+)
53 --- a/drivers/usb/core/quirks.c
54 +++ b/drivers/usb/core/quirks.c
55 @@ -425,6 +425,10 @@ static const struct usb_device_id usb_qu
56 { USB_DEVICE(0x1532, 0x0116), .driver_info =
57 USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL },
59 + /* Lenovo ThinkCenter A630Z TI024Gen3 usb-audio */
60 + { USB_DEVICE(0x17ef, 0xa012), .driver_info =
61 + USB_QUIRK_DISCONNECT_SUSPEND },
63 /* BUILDWIN Photo Frame */
64 { USB_DEVICE(0x1908, 0x1315), .driver_info =
65 USB_QUIRK_HONOR_BNUMINTERFACES },