Handle the stall condition just like the bable one since in both cases
authormpi <mpi@openbsd.org>
Wed, 21 May 2014 12:31:53 +0000 (12:31 +0000)
committermpi <mpi@openbsd.org>
Wed, 21 May 2014 12:31:53 +0000 (12:31 +0000)
the ring is halted.

Do not bother reporting USBD_STALLED to the stack like other HC drivers
do since the endpoint is automatically reseted.  What is the point of
this error apart from making sure driver authors will forget to call
usbd_clear_endpoint_stall_async() correctly?

The Renesas uPD720202 xHCI, provided by Stefan Wollny, now works as
expected.

sys/dev/usb/xhci.c

index b79f196..04f08e9 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: xhci.c,v 1.12 2014/05/20 14:46:19 mpi Exp $ */
+/* $OpenBSD: xhci.c,v 1.13 2014/05/21 12:31:53 mpi Exp $ */
 
 /*
  * Copyright (c) 2014 Martin Pieuchot
@@ -673,12 +673,7 @@ xhci_event_xfer(struct xhci_softc *sc, uint64_t paddr, uint32_t status,
                xfer->actlen = xfer->length - remain;
                xfer->status = USBD_NORMAL_COMPLETION;
                break;
-#if 0
        case XHCI_CODE_STALL:
-               xfer->status = USBD_STALLED;
-               xp->halted = 1;
-               break;
-#endif
        case XHCI_CODE_BABBLE:
                /*
                 * Since the stack might try to start a new transfer as