]> git.karo-electronics.de Git - karo-tx-linux.git/commit
xhci: Don't let the USB core disable SuperSpeed ports.
authorSarah Sharp <sarah.a.sharp@linux.intel.com>
Tue, 16 Nov 2010 23:58:52 +0000 (15:58 -0800)
committerAndi Kleen <ak@linux.intel.com>
Tue, 14 Dec 2010 22:40:12 +0000 (23:40 +0100)
commit21f71d8817c6f240ab1c863d213bf5cd164aec73
tree7116c002854bc3d275f4b34a6a35385ee8f48e98
parentd52a93879e54fac8fb17f566f226c1060c7d1a84
xhci: Don't let the USB core disable SuperSpeed ports.

commit 6dd0a3a7e0793dbeae1b951f091025d8cf896cb4 upstream.

Disabling SuperSpeed ports is a Very Bad Thing (TM).  It disables
SuperSpeed terminations, which means that devices will never connect at
SuperSpeed on that port.  For USB 2.0/1.1 ports, disabling the port meant
that the USB core could always get a connect status change later.  That's
not true with USB 3.0 ports.

Do not let the USB core disable SuperSpeed ports.  We can't rely on the
device speed in the port status registers, since that isn't valid until
there's a USB device connected to the port.  Instead, we use the port
speed array that's created from the Extended Capabilities registers.

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Tested-by: Don Zickus <dzickus@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
drivers/usb/host/xhci-hub.c