From nobody Sun Feb 8 02:41:59 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 560003A7E08 for ; Wed, 21 Jan 2026 08:46:18 +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=1768985180; cv=none; b=AiIIZM/Nz3h4XqW5EvqZ7VYPY0aAaKG6A0dXc923Gywt2+9o2iJ5/bwK9XvBkqaaXsFxqxaAeJShMJrZlmLG0FNqAxFW89nTFSVc8x7hhakRMJQ0iCuZ5DHga2uRDMaefiPw4t/SRLZFfexy32h4etWGbO6HxfH8UFYlaGHITxo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768985180; c=relaxed/simple; bh=2OIZm0PMjYge0nPiWdxM3kV0ny8y5eNZN9PE9wlImVQ=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=OU+jnFnOUOBOo/9G5NLanwgLvMt7hRvymzc9LOeLmx74Ip1927wKqB4fETTP0BL5GBjRjhZLjFUdXdeDgMP6CkKqCLxbS1J4PMB1orKSaVn3PLpdpECqG+xOBkz3aCYOmzH0chsLRN/yzpfjEfCVniJWtQ2KQaOlQMqlSCeeUKg= 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=VBkqBRUj; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=fxqVE9IP; 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="VBkqBRUj"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="fxqVE9IP" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60L5g5dV385656 for ; Wed, 21 Jan 2026 08:46:17 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=/lpc9AD9P7xkhtVjA0m1gC59bOQf9xTISb3 dqeqdi+k=; b=VBkqBRUjmqClqVvzf3x1F2WcRoct08hLuyKk5wwC3M10WPp70tn vvedOjmGHEJwo9HmBW2iYRePhN2wjq2QtVXObBI9TpVKB20O9O4HCQpLC+3s5DA0 zMZ0nXz7baMJiqu2JOfXyvt/vcwXCsNILpOr3aP6EHZEmEV5w+CgF2ywiuBncYgZ kUxLlCExJECxGFmmYFhFVkQCk4TQPQ48K5FC2ugX8F+ZsL9ZISVWeAv1X6Y2PJ+S 9PZXTkmV8i7FJ8ig5lL6Lk7CsCMZkXWZ5SYeEt1B2aJwbTe9/NwTKcu7/IlgBdC0 ukr38ZB9AYcPDwJypUa7IkJVcT8muPOfe5Q== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bta7qbunh-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 21 Jan 2026 08:46:17 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2a784b2234dso24093335ad.1 for ; Wed, 21 Jan 2026 00:46:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1768985177; x=1769589977; 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=/lpc9AD9P7xkhtVjA0m1gC59bOQf9xTISb3dqeqdi+k=; b=fxqVE9IPBhL+Gima1WSaurqpPENnKQpQE3Fe637ipnGhi0QcQu1dGQYbkx+agNUsox vyqJwYbSm2c3OS8RTp5evQc5CuCJEslAeA4Agrn1jtl3VbNDT0Dk6HNxUfg98+foh1tm HgPWaodo24GujoomZeiVf7PYuesP+E1OcGGJGjzo4MUXc0MPEByPEyrvrQVgdwJMkIVP mDOSYsIW91Dtz+8X40y2npeHBWnose07nuFCIkbK5bEraRcpYbpXZyD0fbKqZDe2G2Zo s0L/s2ISMOYXTVbX3tBtrZWD1QfWvRQZQ9vZOgNLhvG7EbtXecwvgV4s5xedhJ9/Dd+6 BzjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768985177; x=1769589977; 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=/lpc9AD9P7xkhtVjA0m1gC59bOQf9xTISb3dqeqdi+k=; b=UhwlJDu3JY4I9GzqC/262nUrL1iQqufPp/8qTMm66qpVtj2A4o5blxz7yk2aUlJJs+ abKvHqpjw0Z8tDenpAV7tg80xR+5R/JE54+cQgNgry7sP3ksJv73K5wwao/0f9hRr0D+ L58q0AIB+DNTWFK7VKyGf2O9bV/4hwvC+fjG8y0Ra52cY0Tsa3IGwNF4zbr5u8vytnDk BH3orhxLhD+K3wHza0hE9ObDnP6EBDTHtJUWIg/gJ+1tx0154rzG46RCDE+2lQiG3Zw9 eUmVJ9fWX8+GFz70A5wtoX7LlDoVok/aQ7EB7I+VwXD3XO91mScpMbGvRYsFfhqIW/nT 1wAQ== X-Forwarded-Encrypted: i=1; AJvYcCWPzODmjUmceTzsrNvCUUjtIVkRzfMsST3Btt05amN7+Leegl9g7H55NljTZrH0sLnsLE5qkrrdRfpzbNI=@vger.kernel.org X-Gm-Message-State: AOJu0YyHaC+u1SrwIO0N8ITKfL1s17dDS/VbX+vK0VRt1vKJs6n9a4vV t540rL1CE9g1+OZWmTzNDpvbyREZuwIroK8hdEE+6u0xdmOxBTFEBmh1e8EsbSC0iNx9pf/wiXp +vkg+KfybnX4rVu8tjvLQqZCLkzllzj3X+QcJ39rY1iGiK1HrgsCg3R/flm8s9hBgnDk= X-Gm-Gg: AZuq6aJGBJh9QQx4kCoda/Dx980UozGhyLt3WO2bQOAq/uzllAHIhxW8D5FnAfPXCPe inWt6IJH4rgEx9NoPahkfsqOO64HyPpSWfaCuwqrRvp8sg5GyHBIRWkxfTtEObbOzFTI3KGxf0T 753SGG/T+afqODvUODbgkw3J6dCWprfSU9CYgRvsU01mbijPJhZMUpVhieY/QN0HBl3Ol3DILBy zYH9vKNS5nbvcSDvledAMLesmziBP4mxEVi1fVDKcQzlHcK0Z+Q0eviV/lOY7PzaU2PvvNzckRn TR/ip5zs0K43kr98sdSVLMQLuyp6LUSvHZT/ootWRi78YzTQm3MW8pK9FpQOtg1B7IZPTD5h97G 0wB2zITqeBGYyCwINlitAu7vVqiCKjNdLKzfTYw== X-Received: by 2002:a17:903:1b65:b0:2a0:de4f:c96 with SMTP id d9443c01a7336-2a768d74facmr43257505ad.18.1768985176544; Wed, 21 Jan 2026 00:46:16 -0800 (PST) X-Received: by 2002:a17:903:1b65:b0:2a0:de4f:c96 with SMTP id d9443c01a7336-2a768d74facmr43257365ad.18.1768985175999; Wed, 21 Jan 2026 00:46:15 -0800 (PST) Received: from hu-prashk-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a75889f594sm45068625ad.85.2026.01.21.00.46.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jan 2026 00:46:15 -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 v5] usb: dwc3: Log dwc3 address in traces Date: Wed, 21 Jan 2026 14:15:50 +0530 Message-Id: <20260121084550.3112162-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-GUID: uhnUV6EwltnqzGlQu866wzYcHIZt6a5M X-Proofpoint-ORIG-GUID: uhnUV6EwltnqzGlQu866wzYcHIZt6a5M X-Authority-Analysis: v=2.4 cv=LPBrgZW9 c=1 sm=1 tr=0 ts=69709259 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=H16qPvunowpSdoYVP_oA:9 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDA3MyBTYWx0ZWRfX1Wnft0YcHGLY JY0DztFYbp7bhWYmppR9RRMHVBHJztbVaQSdiDLasY2abvTGddEJBYhub2dVH8BwXkMeiIDvbOx 1Qqr7E5UYudBDjw721x1953GlGMzTr92VBbIEhFvRSQAJL7wiVHQb5kxSbLBm7Mi4ugGPTsCb4L 3Kk5AFLILZzu3Hu1TRdLC5SDNp86BZnCivI9aoTApHi85NMxUOIhG5S/cU4HpTiQHuZJ5+hv5+q jP8KWmahZTxYdgZQfFc3L5ny5mSCi3Aod4/637WAVRGNI+9PZe/5b1TbT2+OqYJrf4ZrBTenOxD QqdIOTLKVIZU/jqAdaINq8IuE2h9+HN92KsYWJhyiZcjaVUuqgTkQpD6FTPhk6xZbjWGg/uXIuf 5jjWCKsa2NC8z6hM4+wNTpxC60cd1syXBea8TeHCA1r3NpvZVDpxLp97KrNQuKwnr7a1LKsj6JF ZiXUXa2430BVDjjiAsw== 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-21_01,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 malwarescore=0 priorityscore=1501 adultscore=0 bulkscore=0 lowpriorityscore=0 clxscore=1015 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2601210073 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: a600000: event (00000101): Reset [U0] Signed-off-by: Prashanth K --- Changes in v5: - Removed the new variable 'address', and reused xhci_resources[0].start in= stead. - Other patches in the series already got accepted into usb-next. - Link to v4: https://lore.kernel.org/all/20260114100748.2950103-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..2eb5b445b4bf 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(__entry= ->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(DWC= 3_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