The NRL value in the queue head must be zero for interrupt transfers. This was
diagnosed using a USB analyser obtained through a FreeBSD Foundation grant. Thanks to: FreeBSD Foundation
This commit is contained in:
parent
b0994946c7
commit
0ac54a56b8
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=188336
@ -1892,7 +1892,9 @@ ehci_setup_standard_chain(struct usb2_xfer *xfer, ehci_qh_t **qh_last)
|
||||
|
||||
if (usb2_get_speed(xfer->xroot->udev) == USB_SPEED_HIGH) {
|
||||
qh_endp |= (EHCI_QH_SET_EPS(EHCI_QH_SPEED_HIGH) |
|
||||
EHCI_QH_DTC | EHCI_QH_SET_NRL(8));
|
||||
EHCI_QH_DTC);
|
||||
if (methods != &ehci_device_intr_methods)
|
||||
qh_endp |= EHCI_QH_SET_NRL(8);
|
||||
} else {
|
||||
|
||||
if (usb2_get_speed(xfer->xroot->udev) == USB_SPEED_FULL) {
|
||||
|
Loading…
Reference in New Issue
Block a user