NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/56574: uaudio at ehci (not xhci) only outputs rapid gunfire noises in 9.99.93



Does this fix it?

Thanks
Nick
Index: sys/dev/usb/ehci.c
===================================================================
RCS file: /cvsroot/src/sys/dev/usb/ehci.c,v
retrieving revision 1.298
diff -u -p -r1.298 ehci.c
--- sys/dev/usb/ehci.c	23 Dec 2021 11:03:48 -0000	1.298
+++ sys/dev/usb/ehci.c	24 Dec 2021 22:24:54 -0000
@@ -4414,12 +4414,16 @@ ehci_device_fs_isoc_transfer(struct usbd
 		    EHCI_SITD_SET_LEN(xfer->ux_frlengths[i]));

 		/* Set page0 index and offset - TP and T-offset are set below */
-		sitd->sitd.sitd_buffer[0] = htole32(DMAADDR(dma_buf, offs));
+		const bus_addr_t sba = DMAADDR(dma_buf, offs);
+		sitd->sitd.sitd_buffer[0] = htole32(BUS_ADDR_LO32(sitdba));
+		sitd->sitd.sitd_buffer_hi[0] = htole32(BUS_ADDR_HI32(sitdba));

 		offs += xfer->ux_frlengths[i];

+		const bus_addr_t eba = DMAADDR(dma_buf, offs - 1);
 		sitd->sitd.sitd_buffer[1] =
-		    htole32(EHCI_SITD_SET_BPTR(DMAADDR(dma_buf, offs - 1)));
+		    htole32(EHCI_SITD_SET_BPTR(BUS_ADDR_LO32(eba)));
+		sitd->sitd.sitd_buffer_hi[1] = htole32(BUS_ADDR_HI32(eba));

 		u_int huba __diagused = dev->ud_myhsport->up_parent->ud_addr;



Home | Main Index | Thread Index | Old Index