USB: Handle auto-transition from hot to warm reset.
authorSarah Sharp <sarah.a.sharp@linux.intel.com>
Wed, 14 Nov 2012 23:58:52 +0000 (15:58 -0800)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 6 Feb 2013 04:33:20 +0000 (04:33 +0000)
commit330a52700eabd56d3b50e207ff2b6f071502cdfb
treedd880d308fe3cda0e7a37fef7521f80b7d9da532
parent4a2b6c9519c5c2c172b5ce2485fd487759a2dcf0
USB: Handle auto-transition from hot to warm reset.

commit 1c7439c61fa6516419c32a9824976334ea969d47 upstream.

USB 3.0 hubs and roothubs will automatically transition a failed hot
reset to a warm (BH) reset.  In that case, the warm reset change bit
will be set, and the link state change bit may also be set.  Change
hub_port_finish_reset to unconditionally clear those change bits for USB
3.0 hubs.  If these bits are not cleared, we may lose port change events
from the roothub.

This commit should be backported to kernels as old as 3.2, that contain
the commit 75d7cf72ab9fa01dc70877aa5c68e8ef477229dc "usbcore: refine
warm reset logic".

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/usb/core/hub.c