shithub: riscv

Download patch

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