summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2011-04-26 18:50:35 +0000
committerhselasky <hselasky@FreeBSD.org>2011-04-26 18:50:35 +0000
commit41353bc8d6c7e885b19e2b84379c8f5b90003f70 (patch)
tree96e784ead5c6be6f12920fd1cabb7da6cd0193ea
parent519a30551e314539bf947c982c6407ccfa2a1fc7 (diff)
downloadFreeBSD-src-41353bc8d6c7e885b19e2b84379c8f5b90003f70.zip
FreeBSD-src-41353bc8d6c7e885b19e2b84379c8f5b90003f70.tar.gz
Fix for missing EHCI datatoggle change case.
Reported by: Mike Tancsa MFC after: 3 days Approved by: thompsa (mentor)
-rw-r--r--sys/dev/usb/controller/ehci.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/dev/usb/controller/ehci.c b/sys/dev/usb/controller/ehci.c
index 8dcffa2..b7cd3cd 100644
--- a/sys/dev/usb/controller/ehci.c
+++ b/sys/dev/usb/controller/ehci.c
@@ -1196,6 +1196,8 @@ ehci_data_toggle_update(struct usb_xfer *xfer, uint16_t actlen, uint16_t xlen)
dt ^= 1; /* short packet at the end */
else if (actlen != xlen)
dt ^= 1; /* zero length packet at the end */
+ else if (xlen == 0)
+ dt ^= 1; /* zero length transfer */
xfer->endpoint->toggle_next ^= dt;
}
OpenPOWER on IntegriCloud