ChangeSet 1.1595.7.33, 2003/07/31 22:51:23-07:00, [EMAIL PROTECTED]
[PATCH] USB: ehci-hcd, show microframe schedules
This updates the ehci periodic schedule dumping code to be
more useful when displaying the interrupt transfer tree:
- includes start/complete split frame mask in QH
- gets rid of some needless output (more terse)
- shows whether IN or OUT tds are queued, and how many
The microframe info isn't yet very interesting, but it's
helpful when a microframe scheduler is in use. (Which will
be a patch some other time!)
drivers/usb/host/ehci-dbg.c | 41 +++++++++++++++++++++++++++++++++--------
1 files changed, 33 insertions(+), 8 deletions(-)
diff -Nru a/drivers/usb/host/ehci-dbg.c b/drivers/usb/host/ehci-dbg.c
--- a/drivers/usb/host/ehci-dbg.c Fri Aug 1 10:53:51 2003
+++ b/drivers/usb/host/ehci-dbg.c Fri Aug 1 10:53:51 2003
@@ -476,28 +476,53 @@
do {
switch (tag) {
case Q_TYPE_QH:
- temp = snprintf (next, size, " qh%d/%p",
- p.qh->period, p.qh);
+ temp = snprintf (next, size, " qh%d-%04x/%p",
+ p.qh->period,
+ le32_to_cpup (&p.qh->hw_info2)
+ /* uframe masks */
+ & 0xffff,
+ p.qh);
size -= temp;
next += temp;
+ /* don't repeat what follows this qh */
for (temp = 0; temp < seen_count; temp++) {
- if (seen [temp].ptr == p.ptr)
- break;
+ if (seen [temp].ptr != p.ptr)
+ continue;
+ if (p.qh->qh_next.ptr)
+ temp = snprintf (next, size,
+ " ...");
+ p.ptr = 0;
+ break;
}
/* show more info the first time around */
if (temp == seen_count) {
u32 scratch = cpu_to_le32p (
&p.qh->hw_info1);
+ struct ehci_qtd *qtd;
+ char *type = "";
+
+ /* count tds, get ep direction */
+ temp = 0;
+ list_for_each_entry (qtd,
+ &p.qh->qtd_list,
+ qtd_list) {
+ temp++;
+ switch (0x03 & (le32_to_cpu (
+ qtd->hw_token) >> 8)) {
+ case 0: type = "out"; continue;
+ case 1: type = "in"; continue;
+ }
+ }
temp = snprintf (next, size,
- " (%cs dev%d ep%d [%d/%d] %d)",
+ " (%c%d ep%d%s "
+ "[%d/%d] q%d p%d)",
speed_char (scratch),
scratch & 0x007f,
- (scratch >> 8) & 0x000f,
+ (scratch >> 8) & 0x000f, type,
p.qh->usecs, p.qh->c_usecs,
+ temp,
0x7ff & (scratch >> 16));
-
- /* FIXME TD info too */
if (seen_count < DBG_SCHED_LIMIT)
seen [seen_count++].qh = p.qh;
-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel