diff options
Diffstat (limited to 'drivers/usb/host/whci/debug.c')
-rw-r--r-- | drivers/usb/host/whci/debug.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/drivers/usb/host/whci/debug.c b/drivers/usb/host/whci/debug.c index 2273c815941f..c5305b599ca0 100644 --- a/drivers/usb/host/whci/debug.c +++ b/drivers/usb/host/whci/debug.c | |||
@@ -15,6 +15,7 @@ | |||
15 | * You should have received a copy of the GNU General Public License | 15 | * You should have received a copy of the GNU General Public License |
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | 16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 | */ | 17 | */ |
18 | #include <linux/slab.h> | ||
18 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
19 | #include <linux/debugfs.h> | 20 | #include <linux/debugfs.h> |
20 | #include <linux/seq_file.h> | 21 | #include <linux/seq_file.h> |
@@ -31,17 +32,29 @@ struct whc_dbg { | |||
31 | 32 | ||
32 | void qset_print(struct seq_file *s, struct whc_qset *qset) | 33 | void qset_print(struct seq_file *s, struct whc_qset *qset) |
33 | { | 34 | { |
35 | static const char *qh_type[] = { | ||
36 | "ctrl", "isoc", "bulk", "intr", "rsvd", "rsvd", "rsvd", "lpintr", }; | ||
34 | struct whc_std *std; | 37 | struct whc_std *std; |
35 | struct urb *urb = NULL; | 38 | struct urb *urb = NULL; |
36 | int i; | 39 | int i; |
37 | 40 | ||
38 | seq_printf(s, "qset %08x\n", (u32)qset->qset_dma); | 41 | seq_printf(s, "qset %08x", (u32)qset->qset_dma); |
42 | if (&qset->list_node == qset->whc->async_list.prev) { | ||
43 | seq_printf(s, " (dummy)\n"); | ||
44 | } else { | ||
45 | seq_printf(s, " ep%d%s-%s maxpkt: %d\n", | ||
46 | qset->qh.info1 & 0x0f, | ||
47 | (qset->qh.info1 >> 4) & 0x1 ? "in" : "out", | ||
48 | qh_type[(qset->qh.info1 >> 5) & 0x7], | ||
49 | (qset->qh.info1 >> 16) & 0xffff); | ||
50 | } | ||
39 | seq_printf(s, " -> %08x\n", (u32)qset->qh.link); | 51 | seq_printf(s, " -> %08x\n", (u32)qset->qh.link); |
40 | seq_printf(s, " info: %08x %08x %08x\n", | 52 | seq_printf(s, " info: %08x %08x %08x\n", |
41 | qset->qh.info1, qset->qh.info2, qset->qh.info3); | 53 | 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); | 54 | seq_printf(s, " sts: %04x errs: %d curwin: %08x\n", |
55 | qset->qh.status, qset->qh.err_count, qset->qh.cur_window); | ||
43 | seq_printf(s, " TD: sts: %08x opts: %08x\n", | 56 | seq_printf(s, " TD: sts: %08x opts: %08x\n", |
44 | qset->qh.overlay.qtd.status, qset->qh.overlay.qtd.options); | 57 | qset->qh.overlay.qtd.status, qset->qh.overlay.qtd.options); |
45 | 58 | ||
46 | for (i = 0; i < WHCI_QSET_TD_MAX; i++) { | 59 | for (i = 0; i < WHCI_QSET_TD_MAX; i++) { |
47 | seq_printf(s, " %c%c TD[%d]: sts: %08x opts: %08x ptr: %08x\n", | 60 | seq_printf(s, " %c%c TD[%d]: sts: %08x opts: %08x ptr: %08x\n", |