[PATCH v5] usb: dwc3: Log dwc3 address in traces

Prashanth K posted 1 patch 2 weeks, 3 days ago
There is a newer version of this series
drivers/usb/dwc3/core.c   |  2 +-
drivers/usb/dwc3/ep0.c    |  2 +-
drivers/usb/dwc3/gadget.c |  2 +-
drivers/usb/dwc3/io.h     |  4 +-
drivers/usb/dwc3/trace.h  | 88 ++++++++++++++++++++++++---------------
5 files changed, 60 insertions(+), 38 deletions(-)
[PATCH v5] usb: dwc3: Log dwc3 address in traces
Posted by Prashanth K 2 weeks, 3 days ago
When multiple DWC3 controllers are being used, trace events from
different instances get mixed up, making debugging difficult as
there's no way to distinguish which instance generated the trace.

Use the register base address of dwc3 controller and append it to
trace events, so that the source instance is clearly identifiable.

Example trace output,
before ->  dwc3_event: event (00000101): Reset [U0]
after  ->  dwc3_event: a600000: event (00000101): Reset [U0]

Signed-off-by: Prashanth K <prashanth.k@oss.qualcomm.com>
---
Changes in v5:
- Removed the new variable 'address', and reused xhci_resources[0].start instead.
- Other patches in the series already got accepted into usb-next.
- Link to v4: https://lore.kernel.org/all/20260114100748.2950103-1-prashanth.k@oss.qualcomm.com/

 drivers/usb/dwc3/core.c   |  2 +-
 drivers/usb/dwc3/ep0.c    |  2 +-
 drivers/usb/dwc3/gadget.c |  2 +-
 drivers/usb/dwc3/io.h     |  4 +-
 drivers/usb/dwc3/trace.h  | 88 ++++++++++++++++++++++++---------------
 5 files changed, 60 insertions(+), 38 deletions(-)

diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index f32b67bf73a4..c07ffe82c850 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -158,7 +158,7 @@ void dwc3_set_prtcap(struct dwc3 *dwc, u32 mode, bool ignore_susphy)
 	dwc3_writel(dwc, DWC3_GCTL, reg);
 
 	dwc->current_dr_role = mode;
-	trace_dwc3_set_prtcap(mode);
+	trace_dwc3_set_prtcap(dwc, mode);
 }
 EXPORT_SYMBOL_GPL(dwc3_set_prtcap);
 
diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c
index a8ff8db610d3..bfe616194dfa 100644
--- a/drivers/usb/dwc3/ep0.c
+++ b/drivers/usb/dwc3/ep0.c
@@ -833,7 +833,7 @@ static void dwc3_ep0_inspect_setup(struct dwc3 *dwc,
 	if (!dwc->gadget_driver || !dwc->softconnect || !dwc->connected)
 		goto out;
 
-	trace_dwc3_ctrl_req(ctrl);
+	trace_dwc3_ctrl_req(dwc, ctrl);
 
 	len = le16_to_cpu(ctrl->wLength);
 	if (!len) {
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 9355c952c140..384963151ece 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -278,7 +278,7 @@ int dwc3_send_gadget_generic_command(struct dwc3 *dwc, unsigned int cmd,
 		status = -ETIMEDOUT;
 	}
 
-	trace_dwc3_gadget_generic_cmd(cmd, param, status);
+	trace_dwc3_gadget_generic_cmd(dwc, cmd, param, status);
 
 	return ret;
 }
diff --git a/drivers/usb/dwc3/io.h b/drivers/usb/dwc3/io.h
index 7dd0c1e0cf74..cad9a2ae1547 100644
--- a/drivers/usb/dwc3/io.h
+++ b/drivers/usb/dwc3/io.h
@@ -33,7 +33,7 @@ static inline u32 dwc3_readl(struct dwc3 *dwc, u32 offset)
 	 * documentation, so we revert it back to the proper addresses, the
 	 * same way they are described on SNPS documentation
 	 */
-	trace_dwc3_readl(base - DWC3_GLOBALS_REGS_START, offset, value);
+	trace_dwc3_readl(dwc, base - DWC3_GLOBALS_REGS_START, offset, value);
 
 	return value;
 }
@@ -54,7 +54,7 @@ static inline void dwc3_writel(struct dwc3 *dwc, u32 offset, u32 value)
 	 * documentation, so we revert it back to the proper addresses, the
 	 * same way they are described on SNPS documentation
 	 */
-	trace_dwc3_writel(base - DWC3_GLOBALS_REGS_START, offset, value);
+	trace_dwc3_writel(dwc, base - DWC3_GLOBALS_REGS_START, offset, value);
 }
 
 #endif /* __DRIVERS_USB_DWC3_IO_H */
diff --git a/drivers/usb/dwc3/trace.h b/drivers/usb/dwc3/trace.h
index b6ba984bafcd..2eb5b445b4bf 100644
--- a/drivers/usb/dwc3/trace.h
+++ b/drivers/usb/dwc3/trace.h
@@ -20,63 +20,70 @@
 #include "debug.h"
 
 DECLARE_EVENT_CLASS(dwc3_log_set_prtcap,
-	TP_PROTO(u32 mode),
-	TP_ARGS(mode),
+	TP_PROTO(struct dwc3 *dwc, u32 mode),
+	TP_ARGS(dwc, mode),
 	TP_STRUCT__entry(
+		__field(phys_addr_t, base_address)
 		__field(u32, mode)
 	),
 	TP_fast_assign(
+		__entry->base_address = dwc->xhci_resources[0].start;
 		__entry->mode = mode;
 	),
-	TP_printk("mode %s", dwc3_mode_string(__entry->mode))
+	TP_printk("%pa: mode %s", __entry->base_address, dwc3_mode_string(__entry->mode))
 );
 
 DEFINE_EVENT(dwc3_log_set_prtcap, dwc3_set_prtcap,
-	TP_PROTO(u32 mode),
-	TP_ARGS(mode)
+	TP_PROTO(struct dwc3 *dwc, u32 mode),
+	TP_ARGS(dwc, mode)
 );
 
 DECLARE_EVENT_CLASS(dwc3_log_io,
-	TP_PROTO(void *base, u32 offset, u32 value),
-	TP_ARGS(base, offset, value),
+	TP_PROTO(struct dwc3 *dwc, void *base, u32 offset, u32 value),
+	TP_ARGS(dwc, base, offset, value),
 	TP_STRUCT__entry(
+		__field(phys_addr_t, base_address)
 		__field(void *, base)
 		__field(u32, offset)
 		__field(u32, value)
 	),
 	TP_fast_assign(
+		__entry->base_address = dwc->xhci_resources[0].start;
 		__entry->base = base;
 		__entry->offset = offset;
 		__entry->value = value;
 	),
-	TP_printk("addr %p offset %04x value %08x",
+	TP_printk("%pa: addr %p offset %04x value %08x",
+		__entry->base_address,
 		__entry->base + __entry->offset,
 		__entry->offset,
 		__entry->value)
 );
 
 DEFINE_EVENT(dwc3_log_io, dwc3_readl,
-	TP_PROTO(void __iomem *base, u32 offset, u32 value),
-	TP_ARGS(base, offset, value)
+	TP_PROTO(struct dwc3 *dwc, void __iomem *base, u32 offset, u32 value),
+	TP_ARGS(dwc, base, offset, value)
 );
 
 DEFINE_EVENT(dwc3_log_io, dwc3_writel,
-	TP_PROTO(void __iomem *base, u32 offset, u32 value),
-	TP_ARGS(base, offset, value)
+	TP_PROTO(struct dwc3 *dwc, void __iomem *base, u32 offset, u32 value),
+	TP_ARGS(dwc, base, offset, value)
 );
 
 DECLARE_EVENT_CLASS(dwc3_log_event,
 	TP_PROTO(u32 event, struct dwc3 *dwc),
 	TP_ARGS(event, dwc),
 	TP_STRUCT__entry(
+		__field(phys_addr_t, base_address)
 		__field(u32, event)
 		__field(u32, ep0state)
 	),
 	TP_fast_assign(
+		__entry->base_address = dwc->xhci_resources[0].start;
 		__entry->event = event;
 		__entry->ep0state = dwc->ep0state;
 	),
-	TP_printk("event (%08x): %s", __entry->event,
+	TP_printk("%pa: event (%08x): %s", __entry->base_address, __entry->event,
 			dwc3_decode_event(__get_buf(DWC3_MSG_MAX), DWC3_MSG_MAX,
 					__entry->event, __entry->ep0state))
 );
@@ -87,9 +94,10 @@ DEFINE_EVENT(dwc3_log_event, dwc3_event,
 );
 
 DECLARE_EVENT_CLASS(dwc3_log_ctrl,
-	TP_PROTO(struct usb_ctrlrequest *ctrl),
-	TP_ARGS(ctrl),
+	TP_PROTO(struct dwc3 *dwc, struct usb_ctrlrequest *ctrl),
+	TP_ARGS(dwc, ctrl),
 	TP_STRUCT__entry(
+		__field(phys_addr_t, base_address)
 		__field(__u8, bRequestType)
 		__field(__u8, bRequest)
 		__field(__u16, wValue)
@@ -97,13 +105,15 @@ DECLARE_EVENT_CLASS(dwc3_log_ctrl,
 		__field(__u16, wLength)
 	),
 	TP_fast_assign(
+		__entry->base_address = dwc->xhci_resources[0].start;
 		__entry->bRequestType = ctrl->bRequestType;
 		__entry->bRequest = ctrl->bRequest;
 		__entry->wValue = le16_to_cpu(ctrl->wValue);
 		__entry->wIndex = le16_to_cpu(ctrl->wIndex);
 		__entry->wLength = le16_to_cpu(ctrl->wLength);
 	),
-	TP_printk("%s", usb_decode_ctrl(__get_buf(DWC3_MSG_MAX), DWC3_MSG_MAX,
+	TP_printk("%pa: %s", __entry->base_address, usb_decode_ctrl(__get_buf(DWC3_MSG_MAX),
+					DWC3_MSG_MAX,
 					__entry->bRequestType,
 					__entry->bRequest, __entry->wValue,
 					__entry->wIndex, __entry->wLength)
@@ -111,14 +121,15 @@ DECLARE_EVENT_CLASS(dwc3_log_ctrl,
 );
 
 DEFINE_EVENT(dwc3_log_ctrl, dwc3_ctrl_req,
-	TP_PROTO(struct usb_ctrlrequest *ctrl),
-	TP_ARGS(ctrl)
+	TP_PROTO(struct dwc3 *dwc, struct usb_ctrlrequest *ctrl),
+	TP_ARGS(dwc, ctrl)
 );
 
 DECLARE_EVENT_CLASS(dwc3_log_request,
 	TP_PROTO(struct dwc3_request *req),
 	TP_ARGS(req),
 	TP_STRUCT__entry(
+		__field(phys_addr_t, base_address)
 		__string(name, req->dep->name)
 		__field(struct dwc3_request *, req)
 		__field(unsigned int, actual)
@@ -129,7 +140,7 @@ DECLARE_EVENT_CLASS(dwc3_log_request,
 		__field(int, no_interrupt)
 	),
 	TP_fast_assign(
-		__assign_str(name);
+		__entry->base_address = req->dep->dwc->xhci_resources[0].start;
 		__entry->req = req;
 		__entry->actual = req->request.actual;
 		__entry->length = req->request.length;
@@ -138,8 +149,10 @@ DECLARE_EVENT_CLASS(dwc3_log_request,
 		__entry->short_not_ok = req->request.short_not_ok;
 		__entry->no_interrupt = req->request.no_interrupt;
 	),
-	TP_printk("%s: req %p length %u/%u %s%s%s ==> %d",
-		__get_str(name), __entry->req, __entry->actual, __entry->length,
+	TP_printk("%pa: %s: req %p length %u/%u %s%s%s ==> %d",
+		__entry->base_address,
+		__get_str(name), __entry->req,
+		__entry->actual, __entry->length,
 		__entry->zero ? "Z" : "z",
 		__entry->short_not_ok ? "S" : "s",
 		__entry->no_interrupt ? "i" : "I",
@@ -173,28 +186,30 @@ DEFINE_EVENT(dwc3_log_request, dwc3_gadget_giveback,
 );
 
 DECLARE_EVENT_CLASS(dwc3_log_generic_cmd,
-	TP_PROTO(unsigned int cmd, u32 param, int status),
-	TP_ARGS(cmd, param, status),
+	TP_PROTO(struct dwc3 *dwc, unsigned int cmd, u32 param, int status),
+	TP_ARGS(dwc, cmd, param, status),
 	TP_STRUCT__entry(
+		__field(phys_addr_t, base_address)
 		__field(unsigned int, cmd)
 		__field(u32, param)
 		__field(int, status)
 	),
 	TP_fast_assign(
+		__entry->base_address = dwc->xhci_resources[0].start;
 		__entry->cmd = cmd;
 		__entry->param = param;
 		__entry->status = status;
 	),
-	TP_printk("cmd '%s' [%x] param %08x --> status: %s",
-		dwc3_gadget_generic_cmd_string(__entry->cmd),
+	TP_printk("%pa: cmd '%s' [%x] param %08x --> status: %s",
+		__entry->base_address, dwc3_gadget_generic_cmd_string(__entry->cmd),
 		__entry->cmd, __entry->param,
 		dwc3_gadget_generic_cmd_status_string(__entry->status)
 	)
 );
 
 DEFINE_EVENT(dwc3_log_generic_cmd, dwc3_gadget_generic_cmd,
-	TP_PROTO(unsigned int cmd, u32 param, int status),
-	TP_ARGS(cmd, param, status)
+	TP_PROTO(struct dwc3 *dwc, unsigned int cmd, u32 param, int status),
+	TP_ARGS(dwc, cmd, param, status)
 );
 
 DECLARE_EVENT_CLASS(dwc3_log_gadget_ep_cmd,
@@ -202,6 +217,7 @@ DECLARE_EVENT_CLASS(dwc3_log_gadget_ep_cmd,
 		struct dwc3_gadget_ep_cmd_params *params, int cmd_status),
 	TP_ARGS(dep, cmd, params, cmd_status),
 	TP_STRUCT__entry(
+		__field(phys_addr_t, base_address)
 		__string(name, dep->name)
 		__field(unsigned int, cmd)
 		__field(u32, param0)
@@ -210,6 +226,7 @@ DECLARE_EVENT_CLASS(dwc3_log_gadget_ep_cmd,
 		__field(int, cmd_status)
 	),
 	TP_fast_assign(
+		__entry->base_address = dep->dwc->xhci_resources[0].start;
 		__assign_str(name);
 		__entry->cmd = cmd;
 		__entry->param0 = params->param0;
@@ -217,8 +234,9 @@ DECLARE_EVENT_CLASS(dwc3_log_gadget_ep_cmd,
 		__entry->param2 = params->param2;
 		__entry->cmd_status = cmd_status;
 	),
-	TP_printk("%s: cmd '%s' [%x] params %08x %08x %08x --> status: %s",
-		__get_str(name), dwc3_gadget_ep_cmd_string(__entry->cmd),
+	TP_printk("%pa: %s: cmd '%s' [%x] params %08x %08x %08x --> status: %s",
+		__entry->base_address, __get_str(name),
+		dwc3_gadget_ep_cmd_string(__entry->cmd),
 		__entry->cmd, __entry->param0,
 		__entry->param1, __entry->param2,
 		dwc3_ep_cmd_status_string(__entry->cmd_status)
@@ -235,6 +253,7 @@ DECLARE_EVENT_CLASS(dwc3_log_trb,
 	TP_PROTO(struct dwc3_ep *dep, struct dwc3_trb *trb),
 	TP_ARGS(dep, trb),
 	TP_STRUCT__entry(
+		__field(phys_addr_t, base_address)
 		__string(name, dep->name)
 		__field(struct dwc3_trb *, trb)
 		__field(u32, bpl)
@@ -246,6 +265,7 @@ DECLARE_EVENT_CLASS(dwc3_log_trb,
 		__field(u32, dequeue)
 	),
 	TP_fast_assign(
+		__entry->base_address = dep->dwc->xhci_resources[0].start;
 		__assign_str(name);
 		__entry->trb = trb;
 		__entry->bpl = trb->bpl;
@@ -256,8 +276,8 @@ DECLARE_EVENT_CLASS(dwc3_log_trb,
 		__entry->enqueue = dep->trb_enqueue;
 		__entry->dequeue = dep->trb_dequeue;
 	),
-	TP_printk("%s: trb %p (E%d:D%d) buf %08x%08x size %s%d ctrl %08x sofn %08x (%c%c%c%c:%c%c:%s)",
-		__get_str(name), __entry->trb, __entry->enqueue,
+	TP_printk("%pa: %s: trb %p (E%d:D%d) buf %08x%08x size %s%d ctrl %08x sofn %08x (%c%c%c%c:%c%c:%s)",
+		__entry->base_address, __get_str(name), __entry->trb, __entry->enqueue,
 		__entry->dequeue, __entry->bph, __entry->bpl,
 		({char *s;
 		int pcm = ((__entry->size >> 24) & 3) + 1;
@@ -307,6 +327,7 @@ DECLARE_EVENT_CLASS(dwc3_log_ep,
 	TP_PROTO(struct dwc3_ep *dep),
 	TP_ARGS(dep),
 	TP_STRUCT__entry(
+		__field(phys_addr_t, base_address)
 		__string(name, dep->name)
 		__field(unsigned int, maxpacket)
 		__field(unsigned int, maxpacket_limit)
@@ -318,6 +339,7 @@ DECLARE_EVENT_CLASS(dwc3_log_ep,
 		__field(u8, trb_dequeue)
 	),
 	TP_fast_assign(
+		__entry->base_address = dep->dwc->xhci_resources[0].start;
 		__assign_str(name);
 		__entry->maxpacket = dep->endpoint.maxpacket;
 		__entry->maxpacket_limit = dep->endpoint.maxpacket_limit;
@@ -328,8 +350,8 @@ DECLARE_EVENT_CLASS(dwc3_log_ep,
 		__entry->trb_enqueue = dep->trb_enqueue;
 		__entry->trb_dequeue = dep->trb_dequeue;
 	),
-	TP_printk("%s: mps %d/%d streams %d burst %d ring %d/%d flags %c:%c%c%c%c:%c",
-		__get_str(name), __entry->maxpacket,
+	TP_printk("%pa: %s: mps %d/%d streams %d burst %d ring %d/%d flags %c:%c%c%c%c:%c",
+		__entry->base_address, __get_str(name), __entry->maxpacket,
 		__entry->maxpacket_limit, __entry->max_streams,
 		__entry->maxburst, __entry->trb_enqueue,
 		__entry->trb_dequeue,
-- 
2.34.1
Re: [PATCH v5] usb: dwc3: Log dwc3 address in traces
Posted by kernel test robot 2 weeks, 3 days ago
Hi Prashanth,

kernel test robot noticed the following build warnings:

[auto build test WARNING on usb/usb-testing]
[also build test WARNING on usb/usb-next usb/usb-linus linus/master v6.19-rc6 next-20260120]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Prashanth-K/usb-dwc3-Log-dwc3-address-in-traces/20260121-165130
base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
patch link:    https://lore.kernel.org/r/20260121084550.3112162-1-prashanth.k%40oss.qualcomm.com
patch subject: [PATCH v5] usb: dwc3: Log dwc3 address in traces
config: sparc64-randconfig-001-20260121 (https://download.01.org/0day-ci/archive/20260122/202601220002.cJKQOY2h-lkp@intel.com/config)
compiler: sparc64-linux-gcc (GCC) 13.4.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260122/202601220002.cJKQOY2h-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202601220002.cJKQOY2h-lkp@intel.com/

All warnings (new ones prefixed by >>):

   In file included from include/trace/define_trace.h:132,
                    from drivers/usb/dwc3/trace.h:387,
                    from drivers/usb/dwc3/trace.c:11:
   drivers/usb/dwc3/./trace.h: In function 'trace_raw_output_dwc3_log_set_prtcap':
>> drivers/usb/dwc3/./trace.h:33:19: warning: format '%p' expects argument of type 'void *', but argument 3 has type 'phys_addr_t' {aka 'long long unsigned int'} [-Wformat=]
      33 |         TP_printk("%pa: mode %s", __entry->base_address, dwc3_mode_string(__entry->mode))
         |                   ^~~~~~~~~~~~~~
   include/trace/trace_events.h:219:34: note: in definition of macro 'DECLARE_EVENT_CLASS'
     219 |         trace_event_printf(iter, print);                                \
         |                                  ^~~~~
   drivers/usb/dwc3/./trace.h:33:9: note: in expansion of macro 'TP_printk'
      33 |         TP_printk("%pa: mode %s", __entry->base_address, dwc3_mode_string(__entry->mode))
         |         ^~~~~~~~~
   In file included from include/trace/trace_events.h:256:
   drivers/usb/dwc3/./trace.h:33:21: note: format string is defined here
      33 |         TP_printk("%pa: mode %s", __entry->base_address, dwc3_mode_string(__entry->mode))
         |                    ~^
         |                     |
         |                     void *
         |                    %lld
   drivers/usb/dwc3/./trace.h: In function 'trace_raw_output_dwc3_log_io':
   drivers/usb/dwc3/./trace.h:56:19: warning: format '%p' expects argument of type 'void *', but argument 3 has type 'phys_addr_t' {aka 'long long unsigned int'} [-Wformat=]
      56 |         TP_printk("%pa: addr %p offset %04x value %08x",
         |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/trace/trace_events.h:219:34: note: in definition of macro 'DECLARE_EVENT_CLASS'
     219 |         trace_event_printf(iter, print);                                \
         |                                  ^~~~~
   drivers/usb/dwc3/./trace.h:56:9: note: in expansion of macro 'TP_printk'
      56 |         TP_printk("%pa: addr %p offset %04x value %08x",
         |         ^~~~~~~~~
   drivers/usb/dwc3/./trace.h:56:21: note: format string is defined here
      56 |         TP_printk("%pa: addr %p offset %04x value %08x",
         |                    ~^
         |                     |
         |                     void *
         |                    %lld
   drivers/usb/dwc3/./trace.h: In function 'trace_raw_output_dwc3_log_event':
   drivers/usb/dwc3/./trace.h:86:19: warning: format '%p' expects argument of type 'void *', but argument 3 has type 'phys_addr_t' {aka 'long long unsigned int'} [-Wformat=]
      86 |         TP_printk("%pa: event (%08x): %s", __entry->base_address, __entry->event,
         |                   ^~~~~~~~~~~~~~~~~~~~~~~
   include/trace/trace_events.h:219:34: note: in definition of macro 'DECLARE_EVENT_CLASS'
     219 |         trace_event_printf(iter, print);                                \
         |                                  ^~~~~
   drivers/usb/dwc3/./trace.h:86:9: note: in expansion of macro 'TP_printk'
      86 |         TP_printk("%pa: event (%08x): %s", __entry->base_address, __entry->event,
         |         ^~~~~~~~~
   drivers/usb/dwc3/./trace.h:86:21: note: format string is defined here
      86 |         TP_printk("%pa: event (%08x): %s", __entry->base_address, __entry->event,
         |                    ~^
         |                     |
         |                     void *
         |                    %lld
   drivers/usb/dwc3/./trace.h: In function 'trace_raw_output_dwc3_log_ctrl':
   drivers/usb/dwc3/./trace.h:115:19: warning: format '%p' expects argument of type 'void *', but argument 3 has type 'phys_addr_t' {aka 'long long unsigned int'} [-Wformat=]
     115 |         TP_printk("%pa: %s", __entry->base_address, usb_decode_ctrl(__get_buf(DWC3_MSG_MAX),
         |                   ^~~~~~~~~
   include/trace/trace_events.h:219:34: note: in definition of macro 'DECLARE_EVENT_CLASS'
     219 |         trace_event_printf(iter, print);                                \
         |                                  ^~~~~
   drivers/usb/dwc3/./trace.h:115:9: note: in expansion of macro 'TP_printk'
     115 |         TP_printk("%pa: %s", __entry->base_address, usb_decode_ctrl(__get_buf(DWC3_MSG_MAX),
         |         ^~~~~~~~~
   drivers/usb/dwc3/./trace.h:115:21: note: format string is defined here
     115 |         TP_printk("%pa: %s", __entry->base_address, usb_decode_ctrl(__get_buf(DWC3_MSG_MAX),
         |                    ~^
         |                     |
         |                     void *
         |                    %lld
   drivers/usb/dwc3/./trace.h: In function 'trace_raw_output_dwc3_log_request':
   drivers/usb/dwc3/./trace.h:152:19: warning: format '%p' expects argument of type 'void *', but argument 3 has type 'phys_addr_t' {aka 'long long unsigned int'} [-Wformat=]
     152 |         TP_printk("%pa: %s: req %p length %u/%u %s%s%s ==> %d",
         |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/trace/trace_events.h:219:34: note: in definition of macro 'DECLARE_EVENT_CLASS'
     219 |         trace_event_printf(iter, print);                                \
         |                                  ^~~~~
   drivers/usb/dwc3/./trace.h:152:9: note: in expansion of macro 'TP_printk'
     152 |         TP_printk("%pa: %s: req %p length %u/%u %s%s%s ==> %d",
         |         ^~~~~~~~~
   drivers/usb/dwc3/./trace.h:152:21: note: format string is defined here
     152 |         TP_printk("%pa: %s: req %p length %u/%u %s%s%s ==> %d",
         |                    ~^
         |                     |
         |                     void *
         |                    %lld
   drivers/usb/dwc3/./trace.h: In function 'trace_raw_output_dwc3_log_generic_cmd':
   drivers/usb/dwc3/./trace.h:203:19: warning: format '%p' expects argument of type 'void *', but argument 3 has type 'phys_addr_t' {aka 'long long unsigned int'} [-Wformat=]
     203 |         TP_printk("%pa: cmd '%s' [%x] param %08x --> status: %s",
         |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/trace/trace_events.h:219:34: note: in definition of macro 'DECLARE_EVENT_CLASS'
     219 |         trace_event_printf(iter, print);                                \
         |                                  ^~~~~
   drivers/usb/dwc3/./trace.h:203:9: note: in expansion of macro 'TP_printk'
     203 |         TP_printk("%pa: cmd '%s' [%x] param %08x --> status: %s",
         |         ^~~~~~~~~
   drivers/usb/dwc3/./trace.h:203:21: note: format string is defined here
     203 |         TP_printk("%pa: cmd '%s' [%x] param %08x --> status: %s",
         |                    ~^
         |                     |
         |                     void *
         |                    %lld
   drivers/usb/dwc3/./trace.h: In function 'trace_raw_output_dwc3_log_gadget_ep_cmd':
   drivers/usb/dwc3/./trace.h:237:19: warning: format '%p' expects argument of type 'void *', but argument 3 has type 'phys_addr_t' {aka 'long long unsigned int'} [-Wformat=]
     237 |         TP_printk("%pa: %s: cmd '%s' [%x] params %08x %08x %08x --> status: %s",
         |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/trace/trace_events.h:219:34: note: in definition of macro 'DECLARE_EVENT_CLASS'


vim +33 drivers/usb/dwc3/./trace.h

    21	
    22	DECLARE_EVENT_CLASS(dwc3_log_set_prtcap,
    23		TP_PROTO(struct dwc3 *dwc, u32 mode),
    24		TP_ARGS(dwc, mode),
    25		TP_STRUCT__entry(
    26			__field(phys_addr_t, base_address)
    27			__field(u32, mode)
    28		),
    29		TP_fast_assign(
    30			__entry->base_address = dwc->xhci_resources[0].start;
    31			__entry->mode = mode;
    32		),
  > 33		TP_printk("%pa: mode %s", __entry->base_address, dwc3_mode_string(__entry->mode))
    34	);
    35	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki