ref: 7dab4923247b4d07e63bdea80f6063a778d07d12
parent: 153793714ec92bd3a3aa4a3b2d26861c54dd03c4
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Thu Aug 10 21:08:13 EDT 2017
devusb: superspeed bandwidth allocation handled by controller, skip usbload() calculation with xhci, bandwidth allocations are handled by the controller and there are various speed settings possible that currently not exposed in the Udev. so just keep usbload() as it is for usb2 and keep ep->load as zero for superspeed.
--- a/sys/src/9/port/devusb.c
+++ b/sys/src/9/port/devusb.c
@@ -838,7 +838,6 @@
l = 0;
bs = 10UL * maxpkt;
switch(speed){
- case Superspeed:
case Highspeed:
l = 55*8*2 + 2 * (3 + bs) + Hostns;
break;
@@ -897,7 +896,7 @@
error(Enotconf);
ep->clrhalt = 0;
ep->rhrepl = -1;
- if(ep->load == 0)
+ if(ep->load == 0 && ep->dev->speed != Superspeed)
ep->load = usbload(ep->dev->speed, ep->maxpkt);
ep->hp->epopen(ep);