From nobody Sun Feb 8 02:56:06 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 666D442EEA1 for ; Thu, 22 Jan 2026 10:50:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769079015; cv=none; b=t5Gc6Q5nR/3dQA4wssyARVUKRsWuNpHOIQ7YFUsT4hbn9I2vw+3zXxJDUrBOMLprIytLBpsuppJzoU2Y3jhUoz+Yqawa0Kvkc16/3oT5Ctd8USKWUB7vVkdnfIkBAeoAr0G+yVkDcW0aVuKqtyiVrosNXSNVjSPaFGunyDLiWZ0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769079015; c=relaxed/simple; bh=ohaHva4Yjt/bndIj6kFv0glAODEiFg13DABxi4dD7YI=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=VK9VeZ3n548lJrAMwAzbkbiIh9lV7QZHCfnIWIkP9bqxFpnGKx9Pym/tnW15FL2YDj8ZDkDZ4vY/R0T6miJrY1okuNgWRftx3oRF7nqblcH97q/WGpyg9kA+UZQGWNnSJ2SRfza7lOyCHS7fS6Zpk0YM5Khoe5M6mxv3zytw7RU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=jDa+9M5j; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=doqiUBKV; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="jDa+9M5j"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="doqiUBKV" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60M81EcV3867420 for ; Thu, 22 Jan 2026 10:50:11 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:message-id:mime-version :subject:to; s=qcppdkim1; bh=ExSV+5agkH8R/fH7U4KOfCkJIu6mBmlxud1 gLZT+YkI=; b=jDa+9M5jFAaaTWcMuvQWddMz6vtpXqGgRb+04gjhyVF+1ExVKcH 4RLrgCwV+iPmJJQACw8arqnJU1sdWMDF5dilIhtnaBubu2NBxgltUQ6iVrT3ykqq yCXEOAn6RaVm2+9w/MAC9DgmeQ+eXmr+9tCGrWEMK2UKpAKgSkXCJL/NRw7AbuuD VQJysq/bmgmrb1BgEFWfRBryLEA2On0RfgbsH7LFuArcpXA1cfV3DsClLUsLGeT/ lrOC9DKD8LIkDAZpYWIxPkD2wneAKU0nTJmKZqL1McEkvaT/EGPPewTPNqrh1lcC w3i2GuDY7GbCwbT9/tge4wus/pH4dos8X9Q== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4btyrpkqdr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 22 Jan 2026 10:50:11 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-34c43f8ef9bso1759592a91.1 for ; Thu, 22 Jan 2026 02:50:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1769079010; x=1769683810; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=ExSV+5agkH8R/fH7U4KOfCkJIu6mBmlxud1gLZT+YkI=; b=doqiUBKV7Z+wiXW34rckuZWYkHljBDhqEhHjvFS9c1gEqFi3PgEbLFU7NhXqvSZAxg Y2L8QJExMt7ObsOOkcHDMYp7e51BGv87ZOV6AlvS57ej47RZc0lbW97F8OWtxBqEjLO3 wM/vysfNj7AlW4GX9fAzqRLzz7Zlnc/fcRGr/gajtHaM0BC6cdUiOpwDa+pHwM9vSqG2 +TUIxQZDwizPgMCL3MfWKhnDtq9fpyPpzQLgroDGvmK+4LyPKpNqXyD/vjsiaVaQOyDE 6F6TXcY0pVdcEH1/88gKHXqQBEz/VX2mYBo0r0HjE9Ko5tsIkKmsq5UZ4do9NNEKztXp rrbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769079010; x=1769683810; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ExSV+5agkH8R/fH7U4KOfCkJIu6mBmlxud1gLZT+YkI=; b=HEN5QRvH3tXtvc+JBKZ5afUms1fa/Wy3pItV4ulK+weDH12WRgZj9aTy9bOshmXcqu 3XM4S0ePUR37ebFFohs94llhyR0WGciSeckW0Kh+kcwYwIhBq/7OVOZYZL2r7oN9nKsz QZi7TJPgY5rhGBy7XDHg31Fu5bZ6OMFFt4ys54Xk0XOrK009sCFDnvq0/Ha8o61QNCXB 2cso/xFdQHLD3eQW/SsQfcrS82VL+HUOTtIOiK2f6m7HwTcqjOxahNwjBEX4EKeTsbGt DtUnnMi843eJeSfX97t679TZMJjRsUDg4f9G8hXrdidEixjtiIy0uX4rNBXXbnDB7Y+0 XKkQ== X-Forwarded-Encrypted: i=1; AJvYcCX6kV759F8yPJxWwgPk9tjTqoH/9Ouz/lIJ/1Rfsfj8IYEQ/LwRcF5RTMuzBOKGPfwIxcBOceUdUOGtI9s=@vger.kernel.org X-Gm-Message-State: AOJu0YzEvI5cJkwH4z+evCmkY91lUdsc1G0gPCB9EriQyzKj53Zw42Iq kv0pUd9mIgNCswGmZ/lA4vbNqaPxwzwiCqbjTctmumPsL42zgJtV78DxzHHsh4R7sUalqM00407 aYPQjGL0AVTBJSKXdMJU4lfllwdysV4FbfWfNMBIiE8gGO5E497MERyCv163JiRToC3Y= X-Gm-Gg: AZuq6aKqQ07Lol5Xqm6f/7T8Jscz4UyeKNvGNIoJ2IfmK3540XLQ+y2RFOyZALq4Y3l wm88R2rZEfXtHr8I4zzodAGV4wKhm63doS0VRZXXAEV2f1Zr9c4RNNQV0k+2enFxzeE+qPjAG+C UoX77+AmJEjiQofRkeV7qOQlxFET8x2hXUlBDnTBey7l6lVQQE7ZL1YZLzTMvSvP4GXt0GrxjQx 3VTUCW1VLredNTfo3o8/Q0q0Wgt+3zS6pIGqPQm7TFeHySHGuzaxTk+N3o8NKkFS9taCHHsypxf 5Fz2fPFaWOXQia6mEEH/0sFVStOUigs8+TY2Yn7NL2IJExBlIrw4+3twucGK4xU1sjHFZE8kSky tEPeRR4LHZtUYZk5K8EboFUnPg10nIiANkstHEw== X-Received: by 2002:a17:902:dad0:b0:2a7:a1f3:f327 with SMTP id d9443c01a7336-2a7d2fa093emr24223365ad.20.1769079010388; Thu, 22 Jan 2026 02:50:10 -0800 (PST) X-Received: by 2002:a17:902:dad0:b0:2a7:a1f3:f327 with SMTP id d9443c01a7336-2a7d2fa093emr24223245ad.20.1769079009790; Thu, 22 Jan 2026 02:50:09 -0800 (PST) Received: from hu-prashk-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a784af4269sm60733835ad.77.2026.01.22.02.50.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Jan 2026 02:50:09 -0800 (PST) From: Prashanth K To: Thinh Nguyen , Greg Kroah-Hartman Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Prashanth K Subject: [PATCH v6] usb: dwc3: Log dwc3 address in traces Date: Thu, 22 Jan 2026 16:20:00 +0530 Message-Id: <20260122105000.4126769-1-prashanth.k@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: RXHJlvhz9Frs_Znt8wE_9OCKrx_RUlWu X-Proofpoint-GUID: RXHJlvhz9Frs_Znt8wE_9OCKrx_RUlWu X-Authority-Analysis: v=2.4 cv=KpdAGGWN c=1 sm=1 tr=0 ts=697200e3 cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=QyXUC8HyAAAA:8 a=EUspDBNiAAAA:8 a=KdEjMbfuYSVD-50lO-oA:9 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIyMDA3NyBTYWx0ZWRfXzc9pOGHQ8fFF ktNdOWUpkO/Luhc4OMDyWmdv1AExYn0Drj7CXDKZo+GZQq5thaY/arV2gh0gIxOeKAjYL18222L X7myxXSWHSY8qnl81zjXwOlutyJGhjM4pRaGj35mR7VO1jPG5KYgf0oBg5tHWwlAEUDEgXIOWMx n4XuBuIaB8tPVqWhvGCf/JGvyzEl7AHQ6C52JZP3/fbPed3RmGedG1gCpZJs4f278kR4otzmvss Stlea6+Qomu3L2w+3YtYsyPekS4PxpWvqsY6v7MKs566x1RHUV34aqOPUN+ZFaCHIHs63O3oSu2 0kI3Vntr6urUwSrXLrIF0OwpoayA0LJLskq/crdnbhaDf5+6ALudR0ZMobCPG3y76vUvBWSPDh6 9cGX1PnEbd0OaJvV4tS2ht5AXzk91ALWnw+5KcWxf+nVz/pH6Ar6OTOmrzQ1W8353d1QnY4pd7t icSu37RLdQg7vp5pPKg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-22_01,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 bulkscore=0 priorityscore=1501 clxscore=1015 suspectscore=0 phishscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2601220077 Content-Type: text/plain; charset="utf-8" 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: 0x000000000a600000: event (00000101): Reset [U0] Signed-off-by: Prashanth K Acked-by: Thinh Nguyen --- Changes in v6: - Fixed warning from kernel test robot: https://lore.kernel.org/oe-kbuild-a= ll/202601220002.cJKQOY2h-lkp@intel.com/ - Link to v5: https://lore.kernel.org/all/20260121084550.3112162-1-prashant= h.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 i= gnore_susphy) dwc3_writel(dwc, DWC3_GCTL, reg); =20 dwc->current_dr_role =3D mode; - trace_dwc3_set_prtcap(mode); + trace_dwc3_set_prtcap(dwc, mode); } EXPORT_SYMBOL_GPL(dwc3_set_prtcap); =20 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; =20 - trace_dwc3_ctrl_req(ctrl); + trace_dwc3_ctrl_req(dwc, ctrl); =20 len =3D 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 =3D -ETIMEDOUT; } =20 - trace_dwc3_gadget_generic_cmd(cmd, param, status); + trace_dwc3_gadget_generic_cmd(dwc, cmd, param, status); =20 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); =20 return value; } @@ -54,7 +54,7 @@ static inline void dwc3_writel(struct dwc3 *dwc, u32 offs= et, 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); } =20 #endif /* __DRIVERS_USB_DWC3_IO_H */ diff --git a/drivers/usb/dwc3/trace.h b/drivers/usb/dwc3/trace.h index b6ba984bafcd..5253da23d8b0 100644 --- a/drivers/usb/dwc3/trace.h +++ b/drivers/usb/dwc3/trace.h @@ -20,63 +20,70 @@ #include "debug.h" =20 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 =3D dwc->xhci_resources[0].start; __entry->mode =3D mode; ), - TP_printk("mode %s", dwc3_mode_string(__entry->mode)) + TP_printk("%pa: mode %s", &__entry->base_address, dwc3_mode_string(__entr= y->mode)) ); =20 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) ); =20 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 =3D dwc->xhci_resources[0].start; __entry->base =3D base; __entry->offset =3D offset; __entry->value =3D 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) ); =20 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) ); =20 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) ); =20 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 =3D dwc->xhci_resources[0].start; __entry->event =3D event; __entry->ep0state =3D 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, ); =20 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 =3D dwc->xhci_resources[0].start; __entry->bRequestType =3D ctrl->bRequestType; __entry->bRequest =3D ctrl->bRequest; __entry->wValue =3D le16_to_cpu(ctrl->wValue); __entry->wIndex =3D le16_to_cpu(ctrl->wIndex); __entry->wLength =3D 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(DW= C3_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, ); =20 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) ); =20 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 =3D req->dep->dwc->xhci_resources[0].start; __entry->req =3D req; __entry->actual =3D req->request.actual; __entry->length =3D req->request.length; @@ -138,8 +149,10 @@ DECLARE_EVENT_CLASS(dwc3_log_request, __entry->short_not_ok =3D req->request.short_not_ok; __entry->no_interrupt =3D req->request.no_interrupt; ), - TP_printk("%s: req %p length %u/%u %s%s%s =3D=3D> %d", - __get_str(name), __entry->req, __entry->actual, __entry->length, + TP_printk("%pa: %s: req %p length %u/%u %s%s%s =3D=3D> %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, ); =20 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 =3D dwc->xhci_resources[0].start; __entry->cmd =3D cmd; __entry->param =3D param; __entry->status =3D 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) ) ); =20 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) ); =20 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 =3D dep->dwc->xhci_resources[0].start; __assign_str(name); __entry->cmd =3D cmd; __entry->param0 =3D params->param0; @@ -217,8 +234,9 @@ DECLARE_EVENT_CLASS(dwc3_log_gadget_ep_cmd, __entry->param2 =3D params->param2; __entry->cmd_status =3D 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 =3D dep->dwc->xhci_resources[0].start; __assign_str(name); __entry->trb =3D trb; __entry->bpl =3D trb->bpl; @@ -256,8 +276,8 @@ DECLARE_EVENT_CLASS(dwc3_log_trb, __entry->enqueue =3D dep->trb_enqueue; __entry->dequeue =3D dep->trb_dequeue; ), - TP_printk("%s: trb %p (E%d:D%d) buf %08x%08x size %s%d ctrl %08x sofn %08= x (%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 sof= n %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 =3D ((__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 =3D dep->dwc->xhci_resources[0].start; __assign_str(name); __entry->maxpacket =3D dep->endpoint.maxpacket; __entry->maxpacket_limit =3D dep->endpoint.maxpacket_limit; @@ -328,8 +350,8 @@ DECLARE_EVENT_CLASS(dwc3_log_ep, __entry->trb_enqueue =3D dep->trb_enqueue; __entry->trb_dequeue =3D 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, --=20 2.34.1