usb: Support USB 3.1 extended port status request
authorMathias Nyman <mathias.nyman@linux.intel.com>
Thu, 10 Dec 2015 07:59:29 +0000 (09:59 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 25 Jan 2016 04:16:52 +0000 (20:16 -0800)
commit0cdd49a1d1a483d80170d9e592f832274e8bce1b
treeac9bafe08c7d07e1e4fa97b53580d37d86137510
parent9508e3b7a70c11370d70252147b75d3024754970
usb: Support USB 3.1 extended port status request

usb 3.1 extend the hub get-port-status request by adding different
request types. the new request types return 4 additional bytes called
extended port status, these bytes are returned after the regular
portstatus and portchange values.

The extended port status contains a speed ID for the currently used
sublink speed. A table of supported Speed IDs with details about the link
is provided by the hub in the device descriptor BOS SuperSpeedPlus
device capability Sublink Speed Attributes.

Support this new request. Ask for the extended port status after port
reset if hub supports USB 3.1. If link is running at SuperSpeedPlus
set the device speed to USB_SPEED_SUPER_PLUS

Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/core/hcd.c
drivers/usb/core/hub.c
drivers/usb/core/hub.h
include/uapi/linux/usb/ch11.h