On Wed, Jan 08, 2020 at 05:17:30PM +0200, Mathias Nyman wrote:
xhci driver assumed that xHC controllers have at most one custom
supported speed table (PSI) for all usb 3.x ports.
Memory was allocated for one PSI table under the xhci hub structure.
Turns out this is not the case, some controllers have a separate
"supported protocol capability" entry with a PSI table for each port.
This means each usb3 port can in theory support different custom speeds.
Is there a "max" number of port capabilities that can happen? Or this
this truely dynamic?
+ for (i = 0; i < xhci->num_port_caps; i++) {
+ kfree(xhci->port_caps[i].psi);
+ xhci->port_caps[i].psi = NULL;
+ }
Nit, no need to set to NULL here :)