| From 3f5f8b07ba901696ac318c4f2014c5faa8e73d7b Mon Sep 17 00:00:00 2001 |
| From: Felipe Balbi <felipe.balbi@linux.intel.com> |
| Date: Fri, 7 Apr 2017 17:56:58 +0300 |
| Subject: [PATCH 184/286] usb: host: xhci: fix up Control Transfer TRB decoder |
| |
| 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 <felipe.balbi@linux.intel.com> |
| Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| (cherry picked from commit 5d062aba0d399c57e2d793603d6e372adb09b4d7) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| drivers/usb/host/xhci.h | 59 ++++++++++++++++++++++++++++++------------------ |
| 1 file changed, 37 insertions(+), 22 deletions(-) |
| |
| --- a/drivers/usb/host/xhci.h |
| +++ b/drivers/usb/host/xhci.h |
| @@ -2220,31 +2220,46 @@ static inline const char *xhci_decode_tr |
| |
| 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: |