ref: 45eb4badf0e28feda4f9d1d7117286f46eb028f5
parent: 924b473209cecd69ed656f53ef5b4e5ab4b0c119
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);
--
⑨