shithub: riscv

Download patch

ref: 6901fbd5e924a3d05c116289092f3be8f1a290d7
parent: c613e336df8eed2b952acf2cb28e865e92e2daf7
author: Sigrid Solveig Haflínudóttir <[email protected]>
date: Thu Apr 4 17:45:46 EDT 2024

usbxhci: fix high/super speed iso transfers

full speed assumes 1ms between the frames, but with high
speeds the (micro)frames are 125us between.
Adjust accordingly.

This fixed playback on my usb audio 2.0 headset connected
to Reform's xhci hub port.

--- a/sys/src/9/port/usbxhci.c
+++ b/sys/src/9/port/usbxhci.c
@@ -1115,7 +1115,7 @@
 		io->incr = 0;
 		io->tdsz = ep->maxpkt*ep->ntds;
 	} else {
-		io->incr = ((vlong)ep->hz*ep->pollival<<8)/1000;
+		io->incr = ((vlong)ep->hz*io->period<<8)/8000;
 		io->tdsz = (io->incr+255>>8)*ep->samplesz;
 	}
 	io->b = allocb((io->ring->mask+1)*io->tdsz);