]> asedeno.scripts.mit.edu Git - linux.git/commit
usb: handle warm-reset port requests on hub resume
authorJan-Marek Glogowski <glogow@fbihome.de>
Fri, 1 Feb 2019 12:52:31 +0000 (13:52 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Feb 2019 09:21:22 +0000 (10:21 +0100)
commit4fdc1790e6a9ef22399c6bc6e63b80f4609f3b7e
treea21ea27da696a856a796c1766309b5ae0a139e5e
parent68f1ec8ea14f5dcb91df6258e482afcb41610b2e
usb: handle warm-reset port requests on hub resume

On plug-in of my USB-C device, its USB_SS_PORT_LS_SS_INACTIVE
link state bit is set. Greping all the kernel for this bit shows
that the port status requests a warm-reset this way.

This just happens, if its the only device on the root hub, the hub
therefore resumes and the HCDs status_urb isn't yet available.
If a warm-reset request is detected, this sets the hubs event_bits,
which will prevent any auto-suspend and allows the hubs workqueue
to warm-reset the port later in port_event.

Signed-off-by: Jan-Marek Glogowski <glogow@fbihome.de>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/core/hub.c