Commit 45a2af2f authored by Felipe Balbi's avatar Felipe Balbi

usb: dwc3: debug: decode control endpoint phase too

DWC3 can tell us which phase of a setup transfer
we're getting into. Let's decode it from the event
to make it easier to debug.
Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
parent 799e9dc8
...@@ -1041,6 +1041,7 @@ struct dwc3_event_depevt { ...@@ -1041,6 +1041,7 @@ struct dwc3_event_depevt {
/* Control-only Status */ /* Control-only Status */
#define DEPEVT_STATUS_CONTROL_DATA 1 #define DEPEVT_STATUS_CONTROL_DATA 1
#define DEPEVT_STATUS_CONTROL_STATUS 2 #define DEPEVT_STATUS_CONTROL_STATUS 2
#define DEPEVT_STATUS_CONTROL_PHASE(n) ((n) & 3)
/* In response to Start Transfer */ /* In response to Start Transfer */
#define DEPEVT_TRANSFER_NO_RESOURCE 1 #define DEPEVT_TRANSFER_NO_RESOURCE 1
......
...@@ -207,6 +207,19 @@ dwc3_ep_event_string(const struct dwc3_event_depevt *event) ...@@ -207,6 +207,19 @@ dwc3_ep_event_string(const struct dwc3_event_depevt *event)
strcat(str, "Transfer Not Ready"); strcat(str, "Transfer Not Ready");
status = event->status & DEPEVT_STATUS_TRANSFER_ACTIVE; status = event->status & DEPEVT_STATUS_TRANSFER_ACTIVE;
strcat(str, status ? " (Active)" : " (Not Active)"); strcat(str, status ? " (Active)" : " (Not Active)");
/* Control Endpoints */
if (epnum <= 1) {
int phase = DEPEVT_STATUS_CONTROL_PHASE(event->status);
switch (phase) {
case DEPEVT_STATUS_CONTROL_DATA:
strcat(str, " [Data Phase]");
break;
case DEPEVT_STATUS_CONTROL_STATUS:
strcat(str, " [Status Phase]");
}
}
break; break;
case DWC3_DEPEVT_RXTXFIFOEVT: case DWC3_DEPEVT_RXTXFIFOEVT:
strcat(str, "FIFO"); strcat(str, "FIFO");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment