[Feature]USB core and xHCI tasks for USB 3.1 SuperSpeedPlus (SSP) support for Alpine Ridge on SKL
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
intel |
Fix Released
|
Undecided
|
Unassigned | ||
linux (Ubuntu) |
Fix Released
|
Undecided
|
Tim Gardner | ||
Xenial |
Fix Released
|
Undecided
|
Tim Gardner |
Bug Description
USB core expects the roothubs to support the same requests and descriptors as external hubs. As the two roothubs (USB2 and USB3) are
part of xhci we need to support the descriptor and request changes in USB3.1. In our case we need to:
1)Fill and return the new SuperSpeedPlus USB Device capability descriptor as part of the BOS (Binary device Object Store) descritptor. The speed info needed to fill this descriptor can be parsed from extended capability, supported protocol PSI lists. (see xhci 1.1 section 7.2)
2)Return the new EXT_PORT_STATUS when usb core requests a get_port_status() with new option. Can be read from xhci PORTSC register speed field, and map it to the PSI in the extended capability.
3) Check if usb core stored SSP (SuperSpeedPlus) isoc endpoint companion data with the endpoint and use it to calculate max packets and bandwidth.
Upstream:
kernel:4.4
information type: | Proprietary → Public |
Changed in linux (Ubuntu): | |
assignee: | nobody → Tim Gardner (timg-tpi) |
status: | Incomplete → In Progress |
Changed in linux (Ubuntu Xenial): | |
status: | In Progress → Fix Committed |
Changed in intel: | |
status: | In Progress → Fix Released |
this is implemented in 4.4 kernel: b9f072e2c402186 8374b0a6d92 4e09fc790a32a9b d8427e8889
1)
90ec9247808ed6
usb: Add USB 3.1 SuperSpeedPlus device capability descriptor
3220befddc0da1f
usb: store the new usb 3.1 SuperSpeedPlus device capability descriptor
2) e6ad461d3e0436b cc2d7c6309
commit 395f5409ca4336e
xhci: support new USB 3.1 hub request to get extended port status
3) f322bdc3eb50f26 d3c707f61e d937945df70d3ca 8e6c0b3e4d
commit 5693e0b77f82cdd
xhci: Add a SuperSpeedPlus capability descriptor for xhci USB 3.1 roothub
commit 47189098f8bebe4
xhci: parse xhci protocol speed ID list for usb 3.1 usage