https://github.com/torvalds/linux
Revision a45aa3b30583e7d54e7cf4fbcd0aa699348a6e5c authored by Elric Fu on 18 February 2012, 05:32:27 UTC, committed by Sarah Sharp on 21 February 2012, 23:45:25 UTC
The superspeed device attached to a USB 3.0 hub(such as VIA's)
doesn't respond the address device command after resume. The
root cause is the superspeed hub will miss the Hub Depth value
that is used as an offset into the route string to locate the
bits it uses to determine the downstream port number after
reset, and all packets can't be routed to the device attached
to the superspeed hub.

Hub driver sends a Set Hub Depth request to the superspeed hub
except for USB 3.0 root hub when the hub is initialized and
doesn't send the request again after reset due to the resume
process. So moving the code that sends the Set Hub Depth request
to the superspeed hub from hub_configure() to hub_activate()
is to cover those situations include initialization and reset.

The patch should be backported to kernels as old as 2.6.39.

Signed-off-by: Elric Fu <elricfu1@gmail.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Cc: stable@vger.kernel.org
1 parent cab928e
History
Tip revision: a45aa3b30583e7d54e7cf4fbcd0aa699348a6e5c authored by Elric Fu on 18 February 2012, 05:32:27 UTC
USB: Set hub depth after USB3 hub reset
Tip revision: a45aa3b
File Mode Size
apparmor
integrity
keys
selinux
smack
tomoyo
Kconfig -rw-r--r-- 7.9 KB
Makefile -rw-r--r-- 941 bytes
capability.c -rw-r--r-- 23.2 KB
commoncap.c -rw-r--r-- 27.1 KB
device_cgroup.c -rw-r--r-- 11.5 KB
inode.c -rw-r--r-- 6.7 KB
lsm_audit.c -rw-r--r-- 9.0 KB
min_addr.c -rw-r--r-- 1.3 KB
security.c -rw-r--r-- 33.1 KB

back to top