提交 8ee10d62 编写于 作者: A Alan Stern 提交者: Greg Kroah-Hartman

USB: EHCI: enhance "async" debugfs output

This patch enhances the "async" debugfs file in ehci-hcd by printing
out several additional fields in the hardware-accessible data
structures.  These fields are important for determining the hardware's
view of the async schedule, in particular, the addresses of the
current and next qTDs for each QH along with the start address of each
qTD's data buffer.
Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 a016a816
...@@ -436,7 +436,8 @@ static void qh_lines ( ...@@ -436,7 +436,8 @@ static void qh_lines (
scratch = hc32_to_cpup(ehci, &hw->hw_info1); scratch = hc32_to_cpup(ehci, &hw->hw_info1);
hw_curr = (mark == '*') ? hc32_to_cpup(ehci, &hw->hw_current) : 0; hw_curr = (mark == '*') ? hc32_to_cpup(ehci, &hw->hw_current) : 0;
temp = scnprintf (next, size, temp = scnprintf (next, size,
"qh/%p dev%d %cs ep%d %08x %08x (%08x%c %s nak%d)", "qh/%p dev%d %cs ep%d %08x %08x (%08x%c %s nak%d)"
" [cur %08x next %08x buf[0] %08x]",
qh, scratch & 0x007f, qh, scratch & 0x007f,
speed_char (scratch), speed_char (scratch),
(scratch >> 8) & 0x000f, (scratch >> 8) & 0x000f,
...@@ -444,7 +445,10 @@ static void qh_lines ( ...@@ -444,7 +445,10 @@ static void qh_lines (
hc32_to_cpup(ehci, &hw->hw_token), mark, hc32_to_cpup(ehci, &hw->hw_token), mark,
(cpu_to_hc32(ehci, QTD_TOGGLE) & hw->hw_token) (cpu_to_hc32(ehci, QTD_TOGGLE) & hw->hw_token)
? "data1" : "data0", ? "data1" : "data0",
(hc32_to_cpup(ehci, &hw->hw_alt_next) >> 1) & 0x0f); (hc32_to_cpup(ehci, &hw->hw_alt_next) >> 1) & 0x0f,
hc32_to_cpup(ehci, &hw->hw_current),
hc32_to_cpup(ehci, &hw->hw_qtd_next),
hc32_to_cpup(ehci, &hw->hw_buf[0]));
size -= temp; size -= temp;
next += temp; next += temp;
...@@ -464,7 +468,8 @@ static void qh_lines ( ...@@ -464,7 +468,8 @@ static void qh_lines (
mark = '/'; mark = '/';
} }
temp = snprintf (next, size, temp = snprintf (next, size,
"\n\t%p%c%s len=%d %08x urb %p", "\n\t%p%c%s len=%d %08x urb %p"
" [td %08x buf[0] %08x]",
td, mark, ({ char *tmp; td, mark, ({ char *tmp;
switch ((scratch>>8)&0x03) { switch ((scratch>>8)&0x03) {
case 0: tmp = "out"; break; case 0: tmp = "out"; break;
...@@ -474,7 +479,9 @@ static void qh_lines ( ...@@ -474,7 +479,9 @@ static void qh_lines (
} tmp;}), } tmp;}),
(scratch >> 16) & 0x7fff, (scratch >> 16) & 0x7fff,
scratch, scratch,
td->urb); td->urb,
(u32) td->qtd_dma,
hc32_to_cpup(ehci, &td->hw_buf[0]));
if (size < temp) if (size < temp)
temp = size; temp = size;
size -= temp; size -= temp;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册