Skip to content

Commit 7171b0e

Browse files
flavio-suligoigregkh
authored andcommitted
usb: core: hub: disable autosuspend for TI TUSB8041
The Texas Instruments TUSB8041 has an autosuspend problem at high temperature. If there is not USB traffic, after a couple of ms, the device enters in autosuspend mode. In this condition the external clock stops working, to save energy. When the USB activity turns on, ther hub exits the autosuspend state, the clock starts running again and all works fine. At ambient temperature all works correctly, but at high temperature, when the USB activity turns on, the external clock doesn't restart and the hub disappears from the USB bus. Disabling the autosuspend mode for this hub solves the issue. Signed-off-by: Flavio Suligoi <f.suligoi@asem.it> Cc: stable <stable@kernel.org> Acked-by: Alan Stern <stern@rowland.harvard.edu> Link: https://lore.kernel.org/r/20221219124759.3207032-1-f.suligoi@asem.it Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 11cefeb commit 7171b0e

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

drivers/usb/core/hub.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@
4444
#define USB_PRODUCT_USB5534B 0x5534
4545
#define USB_VENDOR_CYPRESS 0x04b4
4646
#define USB_PRODUCT_CY7C65632 0x6570
47+
#define USB_VENDOR_TEXAS_INSTRUMENTS 0x0451
48+
#define USB_PRODUCT_TUSB8041_USB3 0x8140
49+
#define USB_PRODUCT_TUSB8041_USB2 0x8142
4750
#define HUB_QUIRK_CHECK_PORT_AUTOSUSPEND 0x01
4851
#define HUB_QUIRK_DISABLE_AUTOSUSPEND 0x02
4952

@@ -5854,6 +5857,16 @@ static const struct usb_device_id hub_id_table[] = {
58545857
.idVendor = USB_VENDOR_GENESYS_LOGIC,
58555858
.bInterfaceClass = USB_CLASS_HUB,
58565859
.driver_info = HUB_QUIRK_CHECK_PORT_AUTOSUSPEND},
5860+
{ .match_flags = USB_DEVICE_ID_MATCH_VENDOR
5861+
| USB_DEVICE_ID_MATCH_PRODUCT,
5862+
.idVendor = USB_VENDOR_TEXAS_INSTRUMENTS,
5863+
.idProduct = USB_PRODUCT_TUSB8041_USB2,
5864+
.driver_info = HUB_QUIRK_DISABLE_AUTOSUSPEND},
5865+
{ .match_flags = USB_DEVICE_ID_MATCH_VENDOR
5866+
| USB_DEVICE_ID_MATCH_PRODUCT,
5867+
.idVendor = USB_VENDOR_TEXAS_INSTRUMENTS,
5868+
.idProduct = USB_PRODUCT_TUSB8041_USB3,
5869+
.driver_info = HUB_QUIRK_DISABLE_AUTOSUSPEND},
58575870
{ .match_flags = USB_DEVICE_ID_MATCH_DEV_CLASS,
58585871
.bDeviceClass = USB_CLASS_HUB},
58595872
{ .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS,

0 commit comments

Comments
 (0)