aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorElric Fu <elricfu1@gmail.com>2012-02-18 13:32:27 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-02-29 16:34:22 -0800
commitac29c0aeddba8f83dd73ec8a51c72f268c9b7b81 (patch)
tree4e7ac31461669e96e46da55f0ceb6e44eadcee5e /arch/x86
parent5652021f25ea82e6fc30d5b970e30aafe7a6f367 (diff)
downloadkernel_samsung_smdk4412-ac29c0aeddba8f83dd73ec8a51c72f268c9b7b81.zip
kernel_samsung_smdk4412-ac29c0aeddba8f83dd73ec8a51c72f268c9b7b81.tar.gz
kernel_samsung_smdk4412-ac29c0aeddba8f83dd73ec8a51c72f268c9b7b81.tar.bz2
USB: Set hub depth after USB3 hub reset
commit a45aa3b30583e7d54e7cf4fbcd0aa699348a6e5c upstream. 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch/x86')
0 files changed, 0 insertions, 0 deletions