USB: Fix USB3.0 Port Speed Downgrade after port reset
commita4f16eede5fb267bb6c0026a4ce816cd715f3514
authorSarah Sharp <sarah.a.sharp@linux.intel.com>
Fri, 9 Jul 2010 15:08:48 +0000 (9 17:08 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 2 Aug 2010 17:30:01 +0000 (2 10:30 -0700)
treeec44897f3bb1359cb5e2ef6217dc0d1769119d39
parentb00bd2dbb54d1c89c258e5dcd3560113820ebe72
USB: Fix USB3.0 Port Speed Downgrade after port reset

commit 809cd1cb80d7dffe75dc94bc94ef2aab3dadc86a upstream.

Without this fix, a USB 3.0 port is downgraded to full speed after a port
reset of a configured device.  The USB 3.0 terminations will be disabled
permanently, and USB 3.0 devices will always enumerate as full speed
devices, until the host controller is unplugged (if it is an ExpressCard)
or the computer is rebooted.

Fajun Chen traced this traced the speed downgrade issue to the port reset
and the interpretation of port status in USB hub driver code.  The hub
code was not testing for the port being a SuperSpeed port, and it fell
through to the else case of Full Speed.

The following patch adds SuperSpeed mapping from the port status, and
fixes the speed downgrade issue.

Reported-by: Fajun Chen <fajun.chen@seagate.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/core/hub.c