svn commit: r277370 - stable/9/sys/dev/usb/controller
Hans Petter Selasky
hselasky at FreeBSD.org
Mon Jan 19 07:20:21 UTC 2015
Author: hselasky
Date: Mon Jan 19 07:20:20 2015
New Revision: 277370
URL: https://svnweb.freebsd.org/changeset/base/277370
Log:
MFC r276798:
Fix handling of an error case when the MUSB driver is operating in USB
device side mode.
Modified:
stable/9/sys/dev/usb/controller/musb_otg.c
Directory Properties:
stable/9/sys/ (props changed)
stable/9/sys/dev/ (props changed)
Modified: stable/9/sys/dev/usb/controller/musb_otg.c
==============================================================================
--- stable/9/sys/dev/usb/controller/musb_otg.c Mon Jan 19 07:19:56 2015 (r277369)
+++ stable/9/sys/dev/usb/controller/musb_otg.c Mon Jan 19 07:20:20 2015 (r277370)
@@ -396,7 +396,7 @@ musbotg_dev_ctrl_setup_rx(struct musbotg
/* do not stall at this point */
td->did_stall = 1;
/* wait for interrupt */
- DPRINTFN(0, "CSR0 DATAEND\n");
+ DPRINTFN(1, "CSR0 DATAEND\n");
goto not_complete;
}
@@ -418,32 +418,37 @@ musbotg_dev_ctrl_setup_rx(struct musbotg
sc->sc_ep0_busy = 0;
}
if (sc->sc_ep0_busy) {
- DPRINTFN(0, "EP0 BUSY\n");
+ DPRINTFN(1, "EP0 BUSY\n");
goto not_complete;
}
if (!(csr & MUSB2_MASK_CSR0L_RXPKTRDY)) {
goto not_complete;
}
- /* clear did stall flag */
- td->did_stall = 0;
/* get the packet byte count */
count = MUSB2_READ_2(sc, MUSB2_REG_RXCOUNT);
/* verify data length */
if (count != td->remainder) {
- DPRINTFN(0, "Invalid SETUP packet "
+ DPRINTFN(1, "Invalid SETUP packet "
"length, %d bytes\n", count);
MUSB2_WRITE_1(sc, MUSB2_REG_TXCSRL,
MUSB2_MASK_CSR0L_RXPKTRDY_CLR);
+ /* don't clear stall */
+ td->did_stall = 1;
goto not_complete;
}
if (count != sizeof(req)) {
- DPRINTFN(0, "Unsupported SETUP packet "
+ DPRINTFN(1, "Unsupported SETUP packet "
"length, %d bytes\n", count);
MUSB2_WRITE_1(sc, MUSB2_REG_TXCSRL,
MUSB2_MASK_CSR0L_RXPKTRDY_CLR);
+ /* don't clear stall */
+ td->did_stall = 1;
goto not_complete;
}
+ /* clear did stall flag */
+ td->did_stall = 0;
+
/* receive data */
bus_space_read_multi_1(sc->sc_io_tag, sc->sc_io_hdl,
MUSB2_REG_EPFIFO(0), (void *)&req, sizeof(req));
More information about the svn-src-stable-9
mailing list