aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/whci/debug.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/host/whci/debug.c')
-rw-r--r--drivers/usb/host/whci/debug.c21
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
32void qset_print(struct seq_file *s, struct whc_qset *qset) 33void 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",