diff options
author | Felipe Balbi <balbi@kernel.org> | 2020-01-29 09:20:19 +0200 |
---|---|---|
committer | Felipe Balbi <balbi@kernel.org> | 2020-03-15 11:06:39 +0200 |
commit | 30ad6273adad76017ddad737d45f8931cac554ad (patch) | |
tree | 68731b235f68aedd861e08603eb3713098964661 /drivers/usb/dwc3 | |
parent | 2c523b344dfa65a3738e7039832044aa133c75fb (diff) | |
download | linux-30ad6273adad76017ddad737d45f8931cac554ad.tar.gz linux-30ad6273adad76017ddad737d45f8931cac554ad.tar.bz2 linux-30ad6273adad76017ddad737d45f8931cac554ad.zip |
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: Felipe Balbi <balbi@kernel.org>
Diffstat (limited to 'drivers/usb/dwc3')
-rw-r--r-- | drivers/usb/dwc3/trace.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/usb/dwc3/trace.h b/drivers/usb/dwc3/trace.h index 9edff17111f7..3054b89512ff 100644 --- a/drivers/usb/dwc3/trace.h +++ b/drivers/usb/dwc3/trace.h @@ -227,6 +227,8 @@ DECLARE_EVENT_CLASS(dwc3_log_trb, __field(u32, size) __field(u32, ctrl) __field(u32, type) + __field(u32, enqueue) + __field(u32, dequeue) ), TP_fast_assign( __assign_str(name, dep->name); @@ -236,9 +238,12 @@ DECLARE_EVENT_CLASS(dwc3_log_trb, __entry->size = trb->size; __entry->ctrl = trb->ctrl; __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)", - __get_str(name), __entry->trb, __entry->bph, __entry->bpl, + 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->enqueue, + __entry->dequeue, __entry->bph, __entry->bpl, ({char *s; int pcm = ((__entry->size >> 24) & 3) + 1; switch (__entry->type) { |