aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorDavid Vrabel <david.vrabel@csr.com>2009-10-12 11:45:17 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2009-12-11 14:55:16 -0500
commitd19fc291929aae528a40dd17c71a81f26254715d (patch)
treef6621f7fa430042ab764de1cafba8612e079fef7 /drivers/usb
parentdca8cd04dfa4a421511ad0505e4f8a0973f7e38c (diff)
usb: whci-hcd: decode more QHead fields in the debug files
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>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/host/whci/debug.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/drivers/usb/host/whci/debug.c b/drivers/usb/host/whci/debug.c
index 2273c815941f..8c1c610c9513 100644
--- a/drivers/usb/host/whci/debug.c
+++ b/drivers/usb/host/whci/debug.c
@@ -31,17 +31,29 @@ struct whc_dbg {
31 31
32void qset_print(struct seq_file *s, struct whc_qset *qset) 32void qset_print(struct seq_file *s, struct whc_qset *qset)
33{ 33{
34 static const char *qh_type[] = {
35 "ctrl", "isoc", "bulk", "intr", "rsvd", "rsvd", "rsvd", "lpintr", };
34 struct whc_std *std; 36 struct whc_std *std;
35 struct urb *urb = NULL; 37 struct urb *urb = NULL;
36 int i; 38 int i;
37 39
38 seq_printf(s, "qset %08x\n", (u32)qset->qset_dma); 40 seq_printf(s, "qset %08x", (u32)qset->qset_dma);
41 if (&qset->list_node == qset->whc->async_list.prev) {
42 seq_printf(s, " (dummy)\n");
43 } else {
44 seq_printf(s, " ep%d%s-%s maxpkt: %d\n",
45 qset->qh.info1 & 0x0f,
46 (qset->qh.info1 >> 4) & 0x1 ? "in" : "out",
47 qh_type[(qset->qh.info1 >> 5) & 0x7],
48 (qset->qh.info1 >> 16) & 0xffff);
49 }
39 seq_printf(s, " -> %08x\n", (u32)qset->qh.link); 50 seq_printf(s, " -> %08x\n", (u32)qset->qh.link);
40 seq_printf(s, " info: %08x %08x %08x\n", 51 seq_printf(s, " info: %08x %08x %08x\n",
41 qset->qh.info1, qset->qh.info2, qset->qh.info3); 52 qset->qh.info1, qset->qh.info2, qset->qh.info3);
42 seq_printf(s, " sts: %04x errs: %d\n", qset->qh.status, qset->qh.err_count); 53 seq_printf(s, " sts: %04x errs: %d curwin: %08x\n",
54 qset->qh.status, qset->qh.err_count, qset->qh.cur_window);
43 seq_printf(s, " TD: sts: %08x opts: %08x\n", 55 seq_printf(s, " TD: sts: %08x opts: %08x\n",
44 qset->qh.overlay.qtd.status, qset->qh.overlay.qtd.options); 56 qset->qh.overlay.qtd.status, qset->qh.overlay.qtd.options);
45 57
46 for (i = 0; i < WHCI_QSET_TD_MAX; i++) { 58 for (i = 0; i < WHCI_QSET_TD_MAX; i++) {
47 seq_printf(s, " %c%c TD[%d]: sts: %08x opts: %08x ptr: %08x\n", 59 seq_printf(s, " %c%c TD[%d]: sts: %08x opts: %08x ptr: %08x\n",