aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/usb
diff options
context:
space:
mode:
authorNick Hibma <n_hibma@FreeBSD.org>2002-02-19 10:53:25 +0000
committerNick Hibma <n_hibma@FreeBSD.org>2002-02-19 10:53:25 +0000
commitdfe6efdcae0e1fc92468c39533c9d59805a0611f (patch)
tree0d0640e94eaa70a5568495db4b4ad558afcc168b /sys/dev/usb
parent500439d4b3ade2bf78b80303c729203c733379d5 (diff)
downloadsrc-dfe6efdcae0e1fc92468c39533c9d59805a0611f.tar.gz
src-dfe6efdcae0e1fc92468c39533c9d59805a0611f.zip
Clean up some debugging output.
Add function to display the CBI command block.
Notes
Notes: svn path=/head/; revision=90907
Diffstat (limited to 'sys/dev/usb')
-rw-r--r--sys/dev/usb/umass.c35
1 files changed, 26 insertions, 9 deletions
diff --git a/sys/dev/usb/umass.c b/sys/dev/usb/umass.c
index a549a2a13348..f650879baca8 100644
--- a/sys/dev/usb/umass.c
+++ b/sys/dev/usb/umass.c
@@ -547,10 +547,9 @@ Static int umass_rbc_transform __P((struct umass_softc *sc,
#ifdef UMASS_DEBUG
/* General debugging functions */
-Static void umass_bbb_dump_cbw (struct umass_softc *sc,
- umass_bbb_cbw_t *cbw);
-Static void umass_bbb_dump_csw (struct umass_softc *sc,
- umass_bbb_csw_t *csw);
+Static void umass_bbb_dump_cbw (struct umass_softc *sc, umass_bbb_cbw_t *cbw);
+Static void umass_bbb_dump_csw (struct umass_softc *sc, umass_bbb_csw_t *csw);
+Static void umass_cbi_dump_cmd (struct umass_softc *sc, void *cmd, int cmdlen);
Static void umass_dump_buffer (struct umass_softc *sc, u_int8_t *buffer,
int buflen, int printlen);
#endif
@@ -1524,7 +1523,7 @@ umass_bbb_state(usbd_xfer_handle xfer, usbd_private_handle priv,
} else if (sc->transfer_actlen > sc->transfer_datalen) {
/* Buffer overrun! Don't let this go by unnoticed */
- panic("%s: transferred %d bytes instead of %d bytes\n",
+ panic("%s: transferred %db instead of %db\n",
USBDEVNAME(sc->sc_dev),
sc->transfer_actlen, sc->transfer_datalen);
} else if (sc->transfer_datalen - sc->transfer_actlen
@@ -1761,6 +1760,8 @@ umass_cbi_transfer(struct umass_softc *sc, int lun,
/* move from idle to the command state */
sc->transfer_state = TSTATE_CBI_COMMAND;
+ DIF(UDMASS_CBI, umass_cbi_dump_cmd(sc, cmd, cmdlen));
+
/* Send the Command Block from host to device via control endpoint. */
if (umass_cbi_adsc(sc, cmd, cmdlen, sc->transfer_xfer[XFER_CBI_CB]))
umass_cbi_reset(sc, STATUS_WIRE_FAILED);
@@ -1796,7 +1797,7 @@ umass_cbi_state(usbd_xfer_handle xfer, usbd_private_handle priv,
* The control pipe has already been unstalled by the
* USB stack.
* Section 2.4.3.1.1 states that the bulk in endpoints
- * should not stalled at this point.
+ * should not be stalled at this point.
*/
sc->transfer_state = TSTATE_IDLE;
@@ -2533,8 +2534,7 @@ umass_cam_cb(struct umass_softc *sc, void *priv, int residue, int status)
sc->cam_scsi_sense.length = csio->sense_len;
DPRINTF(UDMASS_SCSI,("%s: Fetching %db sense data\n",
- USBDEVNAME(sc->sc_dev),
- csio->sense_len));
+ USBDEVNAME(sc->sc_dev), csio->sense_len));
rcmd = (unsigned char *) &sc->cam_scsi_command;
rcmdlen = sizeof(sc->cam_scsi_command);
@@ -2981,7 +2981,7 @@ umass_bbb_dump_cbw(struct umass_softc *sc, umass_bbb_cbw_t *cbw)
DPRINTF(UDMASS_BBB, ("%s: CBW %d: cmd = %db "
"(0x%02x%02x%02x%02x%02x%02x%s), "
- "data = %d bytes, dir = %s\n",
+ "data = %db, dir = %s\n",
USBDEVNAME(sc->sc_dev), tag, clen,
c[0], c[1], c[2], c[3], c[4], c[5], (clen > 6? "...":""),
dlen, (flags == CBWFLAGS_IN? "in":
@@ -3006,6 +3006,23 @@ umass_bbb_dump_csw(struct umass_softc *sc, umass_bbb_csw_t *csw)
}
Static void
+umass_cbi_dump_cmd(struct umass_softc *sc, void *cmd, int cmdlen)
+{
+ u_int8_t *c = cmd;
+ int dir = sc->transfer_dir;
+
+ DPRINTF(UDMASS_BBB, ("%s: cmd = %db "
+ "(0x%02x%02x%02x%02x%02x%02x%s), "
+ "data = %db, dir = %s\n",
+ USBDEVNAME(sc->sc_dev), cmdlen,
+ c[0], c[1], c[2], c[3], c[4], c[5], (cmdlen > 6? "...":""),
+ sc->transfer_datalen,
+ (dir == DIR_IN? "in":
+ (dir == DIR_OUT? "out":
+ (dir == DIR_NONE? "no data phase": "<invalid>")))));
+}
+
+Static void
umass_dump_buffer(struct umass_softc *sc, u_int8_t *buffer, int buflen,
int printlen)
{