aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2011-04-26 18:50:35 +0000
committerHans Petter Selasky <hselasky@FreeBSD.org>2011-04-26 18:50:35 +0000
commitea719ede0267abd75b3d73d436a36ddb12a6bb12 (patch)
tree96e784ead5c6be6f12920fd1cabb7da6cd0193ea /sys
parent0d307e09052349a4d1ed7cb93792005622bcf690 (diff)
downloadsrc-ea719ede0267abd75b3d73d436a36ddb12a6bb12.tar.gz
src-ea719ede0267abd75b3d73d436a36ddb12a6bb12.zip
Fix for missing EHCI datatoggle change case.
Reported by: Mike Tancsa MFC after: 3 days Approved by: thompsa (mentor)
Notes
Notes: svn path=/head/; revision=221073
Diffstat (limited to 'sys')
-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 8dcffa219797..b7cd3cdb09ca 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;
}