aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2016-08-29 08:55:59 +0000
committerHans Petter Selasky <hselasky@FreeBSD.org>2016-08-29 08:55:59 +0000
commitdd17db0b09f1fbbd30adfffce47ac46b2db15a5c (patch)
treedee74c01952ead7434982d8332aa8b32a8b00f34
parent26b787116ed878335c77ab29bbb67d931111d794 (diff)
downloadsrc-dd17db0b09f1fbbd30adfffce47ac46b2db15a5c.tar.gz
src-dd17db0b09f1fbbd30adfffce47ac46b2db15a5c.zip
MFC r304629:
Don't separate the status stage of the XHCI USB control transfers into its own job because this breaks the simplified QEMU XHCI TRB parser, which expects the complete USB control transfer as a series of back to back TRBs. The old behaviour is kept under #ifdef in case this change breaks enumeration of any USB devices. PR: 212021
Notes
Notes: svn path=/stable/8/; revision=305001
-rw-r--r--sys/dev/usb/controller/xhci.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/dev/usb/controller/xhci.c b/sys/dev/usb/controller/xhci.c
index 08a38f7b96b8..72cbd3cbd82f 100644
--- a/sys/dev/usb/controller/xhci.c
+++ b/sys/dev/usb/controller/xhci.c
@@ -2194,7 +2194,11 @@ xhci_setup_generic_chain(struct usb_xfer *xfer)
* Send a DATA1 message and invert the current
* endpoint direction.
*/
+#ifdef XHCI_STEP_STATUS_STAGE
temp.step_td = (xfer->nframes != 0);
+#else
+ temp.step_td = 0;
+#endif
temp.direction = UE_GET_DIR(xfer->endpointno) ^ UE_DIR_IN;
temp.len = 0;
temp.pc = NULL;