git: 9front

Download patch

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);
 
--