On Mon, Dec 19, 2022 at 01:47:59PM +0100, Flavio Suligoi wrote: > 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@xxxxxxx> > --- Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> > v2: set TUSB8041 vendor id directly as hexnumber, instead of a complex formula > > drivers/usb/core/hub.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c > index 77e73fc8d673..9eca403af2a8 100644 > --- a/drivers/usb/core/hub.c > +++ b/drivers/usb/core/hub.c > @@ -44,6 +44,9 @@ > #define USB_PRODUCT_USB5534B 0x5534 > #define USB_VENDOR_CYPRESS 0x04b4 > #define USB_PRODUCT_CY7C65632 0x6570 > +#define USB_VENDOR_TEXAS_INSTRUMENTS 0x0451 > +#define USB_PRODUCT_TUSB8041_USB3 0x8140 > +#define USB_PRODUCT_TUSB8041_USB2 0x8142 > #define HUB_QUIRK_CHECK_PORT_AUTOSUSPEND 0x01 > #define HUB_QUIRK_DISABLE_AUTOSUSPEND 0x02 > > @@ -5854,6 +5857,16 @@ static const struct usb_device_id hub_id_table[] = { > .idVendor = USB_VENDOR_GENESYS_LOGIC, > .bInterfaceClass = USB_CLASS_HUB, > .driver_info = HUB_QUIRK_CHECK_PORT_AUTOSUSPEND}, > + { .match_flags = USB_DEVICE_ID_MATCH_VENDOR > + | USB_DEVICE_ID_MATCH_PRODUCT, > + .idVendor = USB_VENDOR_TEXAS_INSTRUMENTS, > + .idProduct = USB_PRODUCT_TUSB8041_USB2, > + .driver_info = HUB_QUIRK_DISABLE_AUTOSUSPEND}, > + { .match_flags = USB_DEVICE_ID_MATCH_VENDOR > + | USB_DEVICE_ID_MATCH_PRODUCT, > + .idVendor = USB_VENDOR_TEXAS_INSTRUMENTS, > + .idProduct = USB_PRODUCT_TUSB8041_USB3, > + .driver_info = HUB_QUIRK_DISABLE_AUTOSUSPEND}, > { .match_flags = USB_DEVICE_ID_MATCH_DEV_CLASS, > .bDeviceClass = USB_CLASS_HUB}, > { .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS, > -- > 2.25.1 >