usb: whci-hcd: decode more QHead fields in the debug files
authorDavid Vrabel <david.vrabel@csr.com>
Mon, 12 Oct 2009 15:45:17 +0000 (15:45 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 11 Dec 2009 19:55:16 +0000 (11:55 -0800)
Print ep number, direction and type; and current window in asl and pzl
debugfs files.

Signed-off-by: David Vrabel <david.vrabel@csr.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/host/whci/debug.c

index 2273c815941fe1cf4a886c19831bc63cb871d0f9..8c1c610c9513222aa494e86e6977799c57cbc991 100644 (file)
@@ -31,17 +31,29 @@ struct whc_dbg {
 
 void qset_print(struct seq_file *s, struct whc_qset *qset)
 {
+       static const char *qh_type[] = {
+               "ctrl", "isoc", "bulk", "intr", "rsvd", "rsvd", "rsvd", "lpintr", };
        struct whc_std *std;
        struct urb *urb = NULL;
        int i;
 
-       seq_printf(s, "qset %08x\n", (u32)qset->qset_dma);
+       seq_printf(s, "qset %08x", (u32)qset->qset_dma);
+       if (&qset->list_node == qset->whc->async_list.prev) {
+               seq_printf(s, " (dummy)\n");
+       } else {
+               seq_printf(s, " ep%d%s-%s maxpkt: %d\n",
+                          qset->qh.info1 & 0x0f,
+                          (qset->qh.info1 >> 4) & 0x1 ? "in" : "out",
+                          qh_type[(qset->qh.info1 >> 5) & 0x7],
+                          (qset->qh.info1 >> 16) & 0xffff);
+       }
        seq_printf(s, "  -> %08x\n", (u32)qset->qh.link);
        seq_printf(s, "  info: %08x %08x %08x\n",
-               qset->qh.info1, qset->qh.info2,  qset->qh.info3);
-       seq_printf(s, "  sts: %04x errs: %d\n", qset->qh.status, qset->qh.err_count);
+                  qset->qh.info1, qset->qh.info2,  qset->qh.info3);
+       seq_printf(s, "  sts: %04x errs: %d curwin: %08x\n",
+                  qset->qh.status, qset->qh.err_count, qset->qh.cur_window);
        seq_printf(s, "  TD: sts: %08x opts: %08x\n",
-               qset->qh.overlay.qtd.status, qset->qh.overlay.qtd.options);
+                  qset->qh.overlay.qtd.status, qset->qh.overlay.qtd.options);
 
        for (i = 0; i < WHCI_QSET_TD_MAX; i++) {
                seq_printf(s, "  %c%c TD[%d]: sts: %08x opts: %08x ptr: %08x\n",