From: Felipe Balbi <[email protected]>

Format for each TRB in each control transfer stage differs. Let's make
sure we correctly pretty print these fields to avoid confusion.

Signed-off-by: Felipe Balbi <[email protected]>
Signed-off-by: Mathias Nyman <[email protected]>
---
 drivers/usb/host/xhci.h | 59 +++++++++++++++++++++++++++++++------------------
 1 file changed, 37 insertions(+), 22 deletions(-)

diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index cf79c1f..52153e1 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -2217,31 +2217,46 @@ static inline const char *xhci_decode_trb(u32 field0, 
u32 field1, u32 field2,
 
                break;
        case TRB_SETUP:
-               sprintf(str,
-                       "bRequestType %02x bRequest %02x wValue %02x%02x wIndex 
%02x%02x wLength %d length %d TD size %d intr %d type '%s' flags 
%c:%c:%c:%c:%c:%c:%c:%c",
-                       field0 & 0xff,
-                       (field0 & 0xff00) >> 8,
-                       (field0 & 0xff000000) >> 24,
-                       (field0 & 0xff0000) >> 16,
-                       (field1 & 0xff00) >> 8,
-                       field1 & 0xff,
-                       (field1 & 0xff000000) >> 16 |
-                       (field1 & 0xff0000) >> 16,
-                       TRB_LEN(field2), GET_TD_SIZE(field2),
-                       GET_INTR_TARGET(field2),
-                       xhci_trb_type_string(TRB_FIELD_TO_TYPE(field3)),
-                       field3 & TRB_BEI ? 'B' : 'b',
-                       field3 & TRB_IDT ? 'I' : 'i',
-                       field3 & TRB_IOC ? 'I' : 'i',
-                       field3 & TRB_CHAIN ? 'C' : 'c',
-                       field3 & TRB_NO_SNOOP ? 'S' : 's',
-                       field3 & TRB_ISP ? 'I' : 'i',
-                       field3 & TRB_ENT ? 'E' : 'e',
-                       field3 & TRB_CYCLE ? 'C' : 'c');
+               sprintf(str, "bRequestType %02x bRequest %02x wValue %02x%02x 
wIndex %02x%02x wLength %d length %d TD size %d intr %d type '%s' flags 
%c:%c:%c",
+                               field0 & 0xff,
+                               (field0 & 0xff00) >> 8,
+                               (field0 & 0xff000000) >> 24,
+                               (field0 & 0xff0000) >> 16,
+                               (field1 & 0xff00) >> 8,
+                               field1 & 0xff,
+                               (field1 & 0xff000000) >> 16 |
+                               (field1 & 0xff0000) >> 16,
+                               TRB_LEN(field2), GET_TD_SIZE(field2),
+                               GET_INTR_TARGET(field2),
+                               xhci_trb_type_string(TRB_FIELD_TO_TYPE(field3)),
+                               field3 & TRB_IDT ? 'I' : 'i',
+                               field3 & TRB_IOC ? 'I' : 'i',
+                               field3 & TRB_CYCLE ? 'C' : 'c');
                break;
-       case TRB_NORMAL:
        case TRB_DATA:
+               sprintf(str, "Buffer %08x%08x length %d TD size %d intr %d type 
'%s' flags %c:%c:%c:%c:%c:%c:%c",
+                               field1, field0, TRB_LEN(field2), 
GET_TD_SIZE(field2),
+                               GET_INTR_TARGET(field2),
+                               xhci_trb_type_string(TRB_FIELD_TO_TYPE(field3)),
+                               field3 & TRB_IDT ? 'I' : 'i',
+                               field3 & TRB_IOC ? 'I' : 'i',
+                               field3 & TRB_CHAIN ? 'C' : 'c',
+                               field3 & TRB_NO_SNOOP ? 'S' : 's',
+                               field3 & TRB_ISP ? 'I' : 'i',
+                               field3 & TRB_ENT ? 'E' : 'e',
+                               field3 & TRB_CYCLE ? 'C' : 'c');
+               break;
        case TRB_STATUS:
+               sprintf(str, "Buffer %08x%08x length %d TD size %d intr %d type 
'%s' flags %c:%c:%c:%c",
+                               field1, field0, TRB_LEN(field2), 
GET_TD_SIZE(field2),
+                               GET_INTR_TARGET(field2),
+                               xhci_trb_type_string(TRB_FIELD_TO_TYPE(field3)),
+                               field3 & TRB_IOC ? 'I' : 'i',
+                               field3 & TRB_CHAIN ? 'C' : 'c',
+                               field3 & TRB_ENT ? 'E' : 'e',
+                               field3 & TRB_CYCLE ? 'C' : 'c');
+               break;
+       case TRB_NORMAL:
        case TRB_ISOC:
        case TRB_EVENT_DATA:
        case TRB_TR_NOOP:
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to