Commit 30ad6273 authored by Felipe Balbi's avatar Felipe Balbi

usb: dwc3: trace: print enqueue/dequeue pointers too

By printing enqueue/dequeue pointers, we can make sure that our TRB
handling is correct. We've had a recent situation where we were not
always dequeueing all TRBs in an SG list and this helped figure out
what the problem was.
Signed-off-by: default avatarFelipe Balbi <balbi@kernel.org>
parent 2c523b34
...@@ -227,6 +227,8 @@ DECLARE_EVENT_CLASS(dwc3_log_trb, ...@@ -227,6 +227,8 @@ DECLARE_EVENT_CLASS(dwc3_log_trb,
__field(u32, size) __field(u32, size)
__field(u32, ctrl) __field(u32, ctrl)
__field(u32, type) __field(u32, type)
__field(u32, enqueue)
__field(u32, dequeue)
), ),
TP_fast_assign( TP_fast_assign(
__assign_str(name, dep->name); __assign_str(name, dep->name);
...@@ -236,9 +238,12 @@ DECLARE_EVENT_CLASS(dwc3_log_trb, ...@@ -236,9 +238,12 @@ DECLARE_EVENT_CLASS(dwc3_log_trb,
__entry->size = trb->size; __entry->size = trb->size;
__entry->ctrl = trb->ctrl; __entry->ctrl = trb->ctrl;
__entry->type = usb_endpoint_type(dep->endpoint.desc); __entry->type = usb_endpoint_type(dep->endpoint.desc);
__entry->enqueue = dep->trb_enqueue;
__entry->dequeue = dep->trb_dequeue;
), ),
TP_printk("%s: trb %p buf %08x%08x size %s%d ctrl %08x (%c%c%c%c:%c%c:%s)", TP_printk("%s: trb %p (E%d:D%d) buf %08x%08x size %s%d ctrl %08x (%c%c%c%c:%c%c:%s)",
__get_str(name), __entry->trb, __entry->bph, __entry->bpl, __get_str(name), __entry->trb, __entry->enqueue,
__entry->dequeue, __entry->bph, __entry->bpl,
({char *s; ({char *s;
int pcm = ((__entry->size >> 24) & 3) + 1; int pcm = ((__entry->size >> 24) & 3) + 1;
switch (__entry->type) { switch (__entry->type) {
......
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