mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
usb: dwc3: trace: print out ep0state also from XferComplete
With this extra piece of information, it will be easier to find mismatches between driver and HW. Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
This commit is contained in:
parent
cdd72ac20b
commit
43c96be1c4
4 changed files with 16 additions and 13 deletions
|
@ -200,10 +200,11 @@ dwc3_gadget_event_string(const struct dwc3_event_devt *event)
|
||||||
* @event: then event code
|
* @event: then event code
|
||||||
*/
|
*/
|
||||||
static inline const char *
|
static inline const char *
|
||||||
dwc3_ep_event_string(const struct dwc3_event_depevt *event)
|
dwc3_ep_event_string(const struct dwc3_event_depevt *event, u32 ep0state)
|
||||||
{
|
{
|
||||||
u8 epnum = event->endpoint_number;
|
u8 epnum = event->endpoint_number;
|
||||||
static char str[256];
|
static char str[256];
|
||||||
|
size_t len;
|
||||||
int status;
|
int status;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -215,6 +216,10 @@ dwc3_ep_event_string(const struct dwc3_event_depevt *event)
|
||||||
switch (event->endpoint_event) {
|
switch (event->endpoint_event) {
|
||||||
case DWC3_DEPEVT_XFERCOMPLETE:
|
case DWC3_DEPEVT_XFERCOMPLETE:
|
||||||
strcat(str, "Transfer Complete");
|
strcat(str, "Transfer Complete");
|
||||||
|
len = strlen(str);
|
||||||
|
|
||||||
|
if (epnum <= 1)
|
||||||
|
sprintf(str + len, " [%s]", dwc3_ep0_state_string(ep0state));
|
||||||
break;
|
break;
|
||||||
case DWC3_DEPEVT_XFERINPROGRESS:
|
case DWC3_DEPEVT_XFERINPROGRESS:
|
||||||
strcat(str, "Transfer In-Progress");
|
strcat(str, "Transfer In-Progress");
|
||||||
|
@ -299,14 +304,14 @@ static inline const char *dwc3_gadget_event_type_string(u8 event)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline const char *dwc3_decode_event(u32 event)
|
static inline const char *dwc3_decode_event(u32 event, u32 ep0state)
|
||||||
{
|
{
|
||||||
const union dwc3_event evt = (union dwc3_event) event;
|
const union dwc3_event evt = (union dwc3_event) event;
|
||||||
|
|
||||||
if (evt.type.is_devspec)
|
if (evt.type.is_devspec)
|
||||||
return dwc3_gadget_event_string(&evt.devt);
|
return dwc3_gadget_event_string(&evt.devt);
|
||||||
else
|
else
|
||||||
return dwc3_ep_event_string(&evt.depevt);
|
return dwc3_ep_event_string(&evt.depevt, ep0state);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline const char *dwc3_ep_cmd_status_string(int status)
|
static inline const char *dwc3_ep_cmd_status_string(int status)
|
||||||
|
|
|
@ -1078,10 +1078,6 @@ static void dwc3_ep0_xfernotready(struct dwc3 *dwc,
|
||||||
void dwc3_ep0_interrupt(struct dwc3 *dwc,
|
void dwc3_ep0_interrupt(struct dwc3 *dwc,
|
||||||
const struct dwc3_event_depevt *event)
|
const struct dwc3_event_depevt *event)
|
||||||
{
|
{
|
||||||
dwc3_trace(trace_dwc3_ep0, "%s: state '%s'",
|
|
||||||
dwc3_ep_event_string(event),
|
|
||||||
dwc3_ep0_state_string(dwc->ep0state));
|
|
||||||
|
|
||||||
switch (event->endpoint_event) {
|
switch (event->endpoint_event) {
|
||||||
case DWC3_DEPEVT_XFERCOMPLETE:
|
case DWC3_DEPEVT_XFERCOMPLETE:
|
||||||
dwc3_ep0_xfer_complete(dwc, event);
|
dwc3_ep0_xfer_complete(dwc, event);
|
||||||
|
|
|
@ -2728,7 +2728,7 @@ static void dwc3_gadget_interrupt(struct dwc3 *dwc,
|
||||||
static void dwc3_process_event_entry(struct dwc3 *dwc,
|
static void dwc3_process_event_entry(struct dwc3 *dwc,
|
||||||
const union dwc3_event *event)
|
const union dwc3_event *event)
|
||||||
{
|
{
|
||||||
trace_dwc3_event(event->raw);
|
trace_dwc3_event(event->raw, dwc);
|
||||||
|
|
||||||
/* Endpoint IRQ, handle it and return early */
|
/* Endpoint IRQ, handle it and return early */
|
||||||
if (event->type.is_devspec == 0) {
|
if (event->type.is_devspec == 0) {
|
||||||
|
|
|
@ -63,21 +63,23 @@ DEFINE_EVENT(dwc3_log_msg, dwc3_ep0,
|
||||||
);
|
);
|
||||||
|
|
||||||
DECLARE_EVENT_CLASS(dwc3_log_event,
|
DECLARE_EVENT_CLASS(dwc3_log_event,
|
||||||
TP_PROTO(u32 event),
|
TP_PROTO(u32 event, struct dwc3 *dwc),
|
||||||
TP_ARGS(event),
|
TP_ARGS(event, dwc),
|
||||||
TP_STRUCT__entry(
|
TP_STRUCT__entry(
|
||||||
__field(u32, event)
|
__field(u32, event)
|
||||||
|
__field(u32, ep0state)
|
||||||
),
|
),
|
||||||
TP_fast_assign(
|
TP_fast_assign(
|
||||||
__entry->event = event;
|
__entry->event = event;
|
||||||
|
__entry->ep0state = dwc->ep0state;
|
||||||
),
|
),
|
||||||
TP_printk("event (%08x): %s", __entry->event,
|
TP_printk("event (%08x): %s", __entry->event,
|
||||||
dwc3_decode_event(__entry->event))
|
dwc3_decode_event(__entry->event, __entry->ep0state))
|
||||||
);
|
);
|
||||||
|
|
||||||
DEFINE_EVENT(dwc3_log_event, dwc3_event,
|
DEFINE_EVENT(dwc3_log_event, dwc3_event,
|
||||||
TP_PROTO(u32 event),
|
TP_PROTO(u32 event, struct dwc3 *dwc),
|
||||||
TP_ARGS(event)
|
TP_ARGS(event, dwc)
|
||||||
);
|
);
|
||||||
|
|
||||||
DECLARE_EVENT_CLASS(dwc3_log_ctrl,
|
DECLARE_EVENT_CLASS(dwc3_log_ctrl,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue