From nobody Mon Feb 9 13:35:45 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 420E833AD98 for ; Mon, 5 Jan 2026 11:54:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767614056; cv=none; b=Y5YJ2FNB9jWADH4ZAxmFaqD028uglckEbcolKjInhgHgoAVtI3QdBkLtw86TtmZywjc+C6UIYim5E32iPfqAVBmzGdQwXrgwcs6HE3airEQcoMeSRgKmbEYoF27DCFXXJHKfL1tn/u0bEjdvfQ8uNRg7e2z65RnWDbSnSfSfxm8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767614056; c=relaxed/simple; bh=zPWmUX/9wlvt9l2svqW+tsN1/7HESw2Gjg6RVx5GKvk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=JKzDSK1mwrhjLNxeAcJzwwOig/govjSfVjxZ0mme1MgCVx+9nUPDOhtcyT5i12EfYgKOZORcSEouTsidIVr4Qnv5rLiu1533T35TWzV46ra8j1NOOF4Q4IItXeswXysUja9RLqxKC1a9YtPKasFaSDBAYInvSOTH4FyzPD/Ghp8= 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=aGw+LJuk; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=PE/0r/dl; arc=none smtp.client-ip=205.220.180.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="aGw+LJuk"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="PE/0r/dl" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6055aJL74033594 for ; Mon, 5 Jan 2026 11:54:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=oQfDAsbMwC5 rUHdOBKSZZOiHN4z3jQlM55vyLc3e48k=; b=aGw+LJukUGOlfhELiuyOK7dx8/m zz2BtXiYrku0y1p3ctA498IWundSehp/Ktdni/X/nIfHQNqrSxpQP/Yj+tHYawgU 727RDcGcIi/qkkpwLMDqERbrnimfY4tk1wV3j8USFJ6PGnfTm7O9Sf5Ib+9n+3jL SR7K1BnZrnW7SHU3hCX6+Gw8jxHgzk5WlEDvJYNSpzsLxw9lfXl5KoAyuWYC/Hot a2D8wFdCR1RTPN/nrrndG3no0Aw0y32tV4KfiCfdj4Tk5WABV9ROmM3wWJm5GAQd ODbPoEl5brmhBZ3Ko4etKEKhwbuQiVUbFvzD5guzjbRWDGI98g7jkaAqYrg== Received: from mail-pf1-f200.google.com (mail-pf1-f200.google.com [209.85.210.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bg79nh2yq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 05 Jan 2026 11:54:12 +0000 (GMT) Received: by mail-pf1-f200.google.com with SMTP id d2e1a72fcca58-7b9090d9f2eso25887392b3a.0 for ; Mon, 05 Jan 2026 03:54:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1767614052; x=1768218852; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=oQfDAsbMwC5rUHdOBKSZZOiHN4z3jQlM55vyLc3e48k=; b=PE/0r/dlnxjSz/U4z8nPtReNUS6kUZ3bxni6IXQiAwRTMsB/xCiVEfIBqjQ9vuzooi qfGhzrnU35Pz+iH1tJKWfjOfizUJ3CAmE+1jAJ7xIaJKGSzU9FGNQyjH4x2c9pk0DMr5 RvKBaeupPKJvmPOz7H5CqzNYqtomDN0OSZjz2qSALYa3rNL2ixNzsJKIrOE4pnjGO6jX e9jy8QGwDRnHP/yR6GM7JxoeqW2Z7uZp04IXOg3sHrx3FVVTZZFNC+u3NjjuhEJtNO+v /nhOWuGrQNwtNY6v7X/iWMP6nFrWIc9S8ttw4P8akHEcUR0PUH15ihRz/Ucrb58zTe5i 71fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767614052; x=1768218852; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=oQfDAsbMwC5rUHdOBKSZZOiHN4z3jQlM55vyLc3e48k=; b=ApogsVL7NgmGFV9aGC9u/9M1tfH+12tH8RKh0S47/Xnp+4EqahXjKLVdUl4ZAqMhjg xqAdiHOsFsLDZrh33U/2B7CpzyNgjLHCNfXAS7ykOTY7poMGXP9Gnt3YBw1ytXNd/zjF aHKDwBSS+YjqKr3QdneGumCb5sDKyhLhLk2v6lZAESewA0iqtHYh7rFQurcdqb9WHMm+ Wl0PvdwaaP8uIcyFVS4/s696H1JaMQWBoANJOGIxzjG4N1yoWaBr/1eliRFf4Wp9kyxv 8TtBIeVq6zSDwpAGuqoae93FfRWzHTYU0/9y5H/HYF6b+VkIWLxGfdZhfCpZ0Ev3YXj6 cEqA== X-Forwarded-Encrypted: i=1; AJvYcCUAtCljDocLfg8/4PDQnS5csoNz9dNhKdEGFwlATxzEanue4Ez7V4VIDeKByGXw/6WHn+T8W5rarAI0IpU=@vger.kernel.org X-Gm-Message-State: AOJu0YzfDhzFqn7byC5Y5dSrvbNKoAIVvAHBunRZwlD3iaYE8PoSqcOt ilxDDcwZMeqsrO+1ZPtgDklERzbc8UQSqyS0egh8k5MQ+6KbB1fC2b+Gv1BYzgIh1ojbYZk3e0g 7iQM+TxPgOsZFhhKc00kvLkmL9p5dOjcFoMCHeKSYYO8mXerS36/V0dWbTIzR1Q0xkoANzswwrW 4= X-Gm-Gg: AY/fxX6T6UjNUkffRyzm4BkSPXxKg45LEDYRcclca4E0sntL9jXgnZ9YJX3pxBovmSp rnzI5pCOSLPHHkoDmAvR7yRPWwEuZx25FTzasQPNw+8aU1jWMJCze+dz2RomqamPhi3W+kuTnhl DBSgIaJ8DC2Bt5PV4zfDobRgFAH2WB1018NzUUcHYXpgeYsDp66/2Efm5Fld2TLS38uCskKp2KS 0qtOmr3tUSikXyNpt7WQ6yN5wdb5lyStpmm3AMkugRTMlnVBswMhUQ6eqN6Yj2y922FifNQcTFL tB1cLD9yLRsukusFQ6Ov8d/60pvkg7kOx8LZFhy2yku7pWpRxcQO6EaXJczZctHUJblQ++2BSRs s+K8iA2MeOcUDerlu6ZWvJvCFDvvLJZRuEQ0TDg== X-Received: by 2002:aa7:9a85:0:b0:7e8:4398:b35f with SMTP id d2e1a72fcca58-7ff666730e0mr35140975b3a.50.1767614051485; Mon, 05 Jan 2026 03:54:11 -0800 (PST) X-Google-Smtp-Source: AGHT+IEXnCxsuZ5TDgY/fLSBasAltvetSoO+yxHG/U0FTju18lFMQe4oEwp6fXrG6ZcuvVBRgMamGQ== X-Received: by 2002:aa7:9a85:0:b0:7e8:4398:b35f with SMTP id d2e1a72fcca58-7ff666730e0mr35140959b3a.50.1767614050876; Mon, 05 Jan 2026 03:54:10 -0800 (PST) Received: from hu-prashk-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7ff7e48cd07sm48125744b3a.46.2026.01.05.03.54.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Jan 2026 03:54:10 -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 v2 3/3] usb: dwc3: Log dwc3 instance name in traces Date: Mon, 5 Jan 2026 17:23:25 +0530 Message-Id: <20260105115325.1765176-4-prashanth.k@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260105115325.1765176-1-prashanth.k@oss.qualcomm.com> References: <20260105115325.1765176-1-prashanth.k@oss.qualcomm.com> 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: gxqsSF1hpYChUBqoneHIo69XS2_ZiDTh X-Proofpoint-ORIG-GUID: gxqsSF1hpYChUBqoneHIo69XS2_ZiDTh X-Authority-Analysis: v=2.4 cv=Y8P1cxeN c=1 sm=1 tr=0 ts=695ba664 cx=c_pps a=mDZGXZTwRPZaeRUbqKGCBw==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=8wWpkcANu2y20-MfkgoA:9 a=zc0IvFSfCIW2DFIPzwfm:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA1MDEwNCBTYWx0ZWRfXwIe61+x1SmBy b6T+U47eikCvAObPUpvpRDgqBeJeSK7TXWS5BxMHZ5oiM9MSZqpKn7wRIoM1Pl5lSDbufwOt3kl 3TJbGBfLyB2VLLoy15rAvf1ptWbkWlCDfnoRd04Yd3a5dWOXAktWkpKfBldwyv/ag0fmtPcBrzd 7Av1xS58cZQbZEqSyiBsTaESBNLrGTg0GG56x+U0cgVRnCGRyt1brTsjWiwSOrbO3u2jkPpcbNp K5TcnWPRdoStG4eZnUztpaU5NqhN55QP0Pl194X6Je404/FKllfbmoivmTvFuJl04pPq3Jq5m9p rygVFNguFHCWMFis3jSx5slycIAEUCFgdv3EQ5AAG6rFx5fgTgHnujX16ql+xMl9KeZmqE+oLam GY/wP+EO8foQKMGIQ2gcc7GWTd2RJjj/Q1vEY33YScz7YC/rULGad2sFFwcCF+uG5B8v2QUkwxL 0kHV5RarcoBHxinl8uw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-05_01,2025-12-31_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 phishscore=0 impostorscore=0 suspectscore=0 clxscore=1015 bulkscore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601050104 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. Append the base address of dwc3 controller to trace events, so that the source instance is clearly identifiable. Example trace output, before -> dwc3_event: event (00000101): Reset [U0] after -> dwc3_event: 0a600000: event (00000101): Reset [U0] Signed-off-by: Prashanth K --- drivers/usb/dwc3/core.c | 6 ++- drivers/usb/dwc3/core.h | 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 ++++++++++++++++++++++++--------------- 6 files changed, 66 insertions(+), 38 deletions(-) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index 670a9d4bfff2..3aa85f5f1c47 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 @@ -2193,6 +2193,10 @@ int dwc3_core_probe(const struct dwc3_probe_data *da= ta) dwc_res =3D *res; dwc_res.start +=3D DWC3_GLOBALS_REGS_START; =20 + /* Store the physical base address for logging in trace */ + snprintf(dwc->base_addr, sizeof(dwc->base_addr), "%08llx", + (unsigned long long)res->start); + if (dev->of_node) { struct device_node *parent =3D of_get_parent(dev->of_node); =20 diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h index 23188b910528..c16e47273ea0 100644 --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h @@ -1178,6 +1178,7 @@ struct dwc3_glue_ops { * @wakeup_pending_funcs: Indicates whether any interface has requested for * function wakeup in bitmap format where bit position * represents interface_id. + * @base_addr: The HW base address of DWC3 controller. */ struct dwc3 { struct work_struct drd_work; @@ -1412,6 +1413,7 @@ struct dwc3 { struct dentry *debug_root; u32 gsbuscfg0_reqinfo; u32 wakeup_pending_funcs; + char base_addr[9]; }; =20 #define INCRX_BURST_MODE 0 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 a85ba5ca7912..95c05e5de5b7 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..130c21f5dd1a 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( + __string(base_addr, dwc->base_addr) __field(u32, mode) ), TP_fast_assign( + __assign_str(base_addr); __entry->mode =3D mode; ), - TP_printk("mode %s", dwc3_mode_string(__entry->mode)) + TP_printk("%s: mode %s", __get_str(base_addr), 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( + __string(base_addr, dwc->base_addr) __field(void *, base) __field(u32, offset) __field(u32, value) ), TP_fast_assign( + __assign_str(base_addr); __entry->base =3D base; __entry->offset =3D offset; __entry->value =3D value; ), - TP_printk("addr %p offset %04x value %08x", + TP_printk("%s: addr %p offset %04x value %08x", + __get_str(base_addr), __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( + __string(base_addr, dwc->base_addr) __field(u32, event) __field(u32, ep0state) ), TP_fast_assign( + __assign_str(base_addr); __entry->event =3D event; __entry->ep0state =3D dwc->ep0state; ), - TP_printk("event (%08x): %s", __entry->event, + TP_printk("%s: event (%08x): %s", __get_str(base_addr), __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( + __string(base_addr, dwc->base_addr) __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( + __assign_str(base_addr); __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("%s: %s", __get_str(base_addr), 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, ); =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( + __string(base_addr, req->dep->dwc->base_addr) __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); + __assign_str(base_addr); __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("%s: %s: req %p length %u/%u %s%s%s =3D=3D> %d", + __get_str(base_addr), + __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( + __string(base_addr, dwc->base_addr) __field(unsigned int, cmd) __field(u32, param) __field(int, status) ), TP_fast_assign( + __assign_str(base_addr); __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("%s: cmd '%s' [%x] param %08x --> status: %s", + __get_str(base_addr), 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( + __string(base_addr, dep->dwc->base_addr) __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( + __assign_str(base_addr); __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("%s: %s: cmd '%s' [%x] params %08x %08x %08x --> status: %s", + __get_str(base_addr), __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( + __string(base_addr, dep->dwc->base_addr) __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( + __assign_str(base_addr); __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("%s: %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(base_addr), __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( + __string(base_addr, dep->dwc->base_addr) __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( + __assign_str(base_addr); __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("%s: %s: mps %d/%d streams %d burst %d ring %d/%d flags %c:%c%c= %c%c:%c", + __get_str(base_addr), __get_str(name), __entry->maxpacket, __entry->maxpacket_limit, __entry->max_streams, __entry->maxburst, __entry->trb_enqueue, __entry->trb_dequeue, --=20 2.34.1