From nobody Sat Feb 7 08:45:30 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 ECC8D272E63 for ; Tue, 13 Jan 2026 10:34: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=1768300454; cv=none; b=qW80fF/TbXZmVfl2q3q/KuZ7C3laLDUYfUC+wNW74YA6dCbfc6OZfqgV4zWrtR/eVc+jZDtjpZi8d4YWhyMNOYegjMSS21mdJ7TIWqNaCO7WSPMHlPXlwzAZPxMajamupyA/NgR9fjYNNytX0zvOl6aOQSIP+tbd3JwU/f0JPbg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768300454; c=relaxed/simple; bh=phMaZEdW+xwnGZ/4yeh8Mowv3dTqrpN1TGsy4KysEu8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=U1J2dNJXve/O/8D6yKXFUQVa2YyHBqRcW3z4s3tMeGT0yG30pEJr4wO2VfhrWCBHb1SGVq4SpWw8lyDK/TF0xurerRlNp6wp8My/y16oAjS/Jg4dsQmRKEUPEjZQptqc8hwpFkJ9P0MzuttiN3cvVvKdhzj3Qtw5ljoRxrKXH0I= 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=bzqzJBrC; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Z4GOXftq; 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="bzqzJBrC"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Z4GOXftq" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60D538PZ2865817 for ; Tue, 13 Jan 2026 10:34:12 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=cdPa96MAj6K cEAgrDqHeO2LCi+XsOMkFPiPYTvWqu9g=; b=bzqzJBrCoTv+38gfH7SYTdzEXNa dpu421uHFNyhL57BAto9x7HqbdPeClyfA4vCjiGxI5IISW+gotYqZJxMwKQvSFW/ OH27yPdAotnsmHg4Gyqvyvwwm3cSeYeYZAWxjcSFm1kObkEDwcuJQ3769CwYl6cu N/Mfut4+PAxBVOL14QY+NCiJWnD4DPYlUfp1sUN4D6tTcdYHySozLoNnE7CvHTDO aM5/C7Y6303WLL9rAYi8yhxVxG2pLzQrt0R3+S9HUrOrvVp6649LQOq6HdSJo0RB 7+ilnWggDgL13JQOhhaqYygmmS8juhONzvRfZeQyicWiRCDByyX7bm8nu9g== Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bnfjh91me-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 13 Jan 2026 10:34:12 +0000 (GMT) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-c3dfa080662so3371230a12.1 for ; Tue, 13 Jan 2026 02:34:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1768300451; x=1768905251; 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=cdPa96MAj6KcEAgrDqHeO2LCi+XsOMkFPiPYTvWqu9g=; b=Z4GOXftqzPaI86RaMyj1DudAENv9cWElq40NNZ5az9SqezTkJX2lUazFT24qeTGUkf jMpG/f3HuuTyG8/gkdW4Inu3gPBgB8THCio4X2mwjYAoJLL/RUpjuzyjlDzRq0fUaB2W GDQXR/NM6EG+2NDJoaInxoCWu7LDuR+ngEn1XDMLMU6AYKYpT1dQb0dogOxHpngXhmF1 NZ8JlICNqOVTORRI1s++khYzXLfbBcG4U+dXWACiQtcrXhyoYSaYyyLgtNkXLGl/T+ag sk7etX0JDGTDnX5LfvGUW07tyY1xnKzOUF/fYzQmO16hGkXpYwYhXju+9Xlrx2lW/WjW 7egQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768300451; x=1768905251; 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=cdPa96MAj6KcEAgrDqHeO2LCi+XsOMkFPiPYTvWqu9g=; b=Vjl4Ihcl5RBlTCzbJ52vWF+I+zn2eswzdnUvWUMIbcwPsq/AsE43nCqfdReA8KCfyj zLSsFBFc1Spv3YeI2wIA3Wg0tpBOV49xwmV6H6zC1kySCk8jOVx0WErJ1R1G9qevBPeT 2VWUZ2z2jE+D6L+tS6oZM1EPltoDN/k+2GJ1jMdJmj/r7MMbHREFPkSfpXjO9mglDAhH mu3ISwjiNnOwkAx+cHr6qmTbYszIITdR4Zv4aRlg2cKhtDDYbFrC0t/9CIClYpRlm4/Z WDolVhK5RSK73aay4uZjOvpphyrkBFnVdS6cD9S/MEEH0xZUVm7Nu97Ft/pXwOetGy1+ wXfQ== X-Forwarded-Encrypted: i=1; AJvYcCV7o/ojw5IQPm0sBQrc9L1FWw7y4LtXpZS3x/kSBrgD118fCzwTisK3c2lQsvr47mhq/fd2nq/If7PIdTQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzVwogxFUWmoP5ayk2kAlqSpUi0e6QsM0qvDO/Q6smsaTJilJaa rcCWHnDPMdvTqwsWkyucPCsJ6bZXwLpPnUaJnP1rEDOEzfLFS9D0G3j0XbLWZlqAgMvLW/GFaQf LeVwmqpyS/Z1qwu0KnHqmtzX8G7VS9g9ooAs60nyXjtqRrzxUgN8j+4NslgOl/4HQcn4= X-Gm-Gg: AY/fxX4s+AOzo9/JBI6ki8HbnRE0EaHO5h39Kmy4E+p1EM91/c+NlTAN3xgan7os65e pXwGuFi6w75H/RGNKR71Ac8FJUyJEY7/QD9nIY958AioJ/R79RXA3qcAjtsUCWNsLLgenu7BVsn 7vrTrmmlzjY3AKNo6wuzwaLI6C+uCasSfTNLCqPDsvuQ7ZgG040KR4JLCQk2UrqrPwqVJ0jZJYT 1+NUx/P9awM89vtNZZ3xmxijKNf+AgXfetCMQtvxjENLUYU2Gk45rJnrXVUqKy0cKjFMz20HNIU VOhsSIBYogQliK8nX6tHncD+Uo9AHjRJPmxdKFF3AWnlF60mg+ZCJDghV+pAFqz1yrQfKtVP5TJ pdeo2kj9WHFHVS9HPF6N85jRwSGFznRmJrIAtyQ== X-Received: by 2002:a05:6a20:c909:b0:366:22a1:2a4e with SMTP id adf61e73a8af0-38bd9982ba8mr2533441637.9.1768300451516; Tue, 13 Jan 2026 02:34:11 -0800 (PST) X-Received: by 2002:a05:6a20:c909:b0:366:22a1:2a4e with SMTP id adf61e73a8af0-38bd9982ba8mr2533417637.9.1768300450987; Tue, 13 Jan 2026 02:34:10 -0800 (PST) Received: from hu-prashk-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c4cca06b2edsm19769911a12.32.2026.01.13.02.34.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Jan 2026 02:34: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 v3 1/3] usb: dwc3: Remove of dep->regs Date: Tue, 13 Jan 2026 16:03:58 +0530 Message-Id: <20260113103400.2347763-2-prashanth.k@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260113103400.2347763-1-prashanth.k@oss.qualcomm.com> References: <20260113103400.2347763-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-Spam-Details-Enc: AW1haW4tMjYwMTEzMDA4OSBTYWx0ZWRfX/Br7Zbs6urLm +W3CqJVJyouEDDRb8qL5p5kRrecX1t2Enn3ZMgJyD4pOC/+kP03S0Jwj1rQTt0bEfN8C604LnGV rIZ52gDT6DVEHceOXByPt74tCiaugzNFyo6RYQXLs2AjYnz1H9CU7fNeE2m96VF/eWShnpB6TOs OMrSBTIAnll8iHs6jWYP4EWtUnZaGecKxmY8UeCb5xdVexh6ucelBlX2o+6ExQ+I2naIkOjPQhj hCuH2x1hWxktUwnOD+7O2xW7UI0doVGiSLspEtJ0XKfDY+FM5AmrqYHVVfLxoLIppozRvZgjR+g gXiu/MTjWSiULtNYhUnP/kKoHLlhdMZ1FAZaa0yak1Z9FxHh17nTsb6sAWwOwCQsoLO4GdcxcjN ROEKe6e8PXElIfH84S0Qg86uPn/84U6IEPZsLjVJNonoJz6CBvPIexN9eesE5kxalRVwbWLlnLf 3LladqVfE3YgYE1h6Mw== X-Proofpoint-GUID: N5bm97luVSCKS4CHUM0aIUxNTBAtDCYf X-Proofpoint-ORIG-GUID: N5bm97luVSCKS4CHUM0aIUxNTBAtDCYf X-Authority-Analysis: v=2.4 cv=XJQ9iAhE c=1 sm=1 tr=0 ts=69661fa4 cx=c_pps a=rz3CxIlbcmazkYymdCej/Q==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=jIQo8A4GAAAA:8 a=M8qNcNEInNZZPuFPK7cA:9 a=bFCP_H2QrGi7Okbo017w:22 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-13_02,2026-01-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 malwarescore=0 spamscore=0 phishscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601130089 Content-Type: text/plain; charset="utf-8" Remove dep->regs from struct dwc3_ep and reuse dwc->regs instead. Thus eliminating redundant iomem addresses and making register access more consistent across the driver. Signed-off-by: Prashanth K Acked-by: Thinh Nguyen --- drivers/usb/dwc3/core.h | 10 ++++------ drivers/usb/dwc3/debugfs.c | 12 ++++-------- drivers/usb/dwc3/gadget.c | 12 ++++++------ drivers/usb/dwc3/gadget.h | 2 +- 4 files changed, 15 insertions(+), 21 deletions(-) diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h index a5fc92c4ffa3..23188b910528 100644 --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h @@ -165,10 +165,10 @@ #define DWC3_DCFG1 0xc740 /* DWC_usb32 only */ =20 #define DWC3_DEP_BASE(n) (0xc800 + ((n) * 0x10)) -#define DWC3_DEPCMDPAR2 0x00 -#define DWC3_DEPCMDPAR1 0x04 -#define DWC3_DEPCMDPAR0 0x08 -#define DWC3_DEPCMD 0x0c +#define DWC3_DEPCMDPAR2(n) (DWC3_DEP_BASE(n) + 0x00) +#define DWC3_DEPCMDPAR1(n) (DWC3_DEP_BASE(n) + 0x04) +#define DWC3_DEPCMDPAR0(n) (DWC3_DEP_BASE(n) + 0x08) +#define DWC3_DEPCMD(n) (DWC3_DEP_BASE(n) + 0x0c) =20 #define DWC3_DEV_IMOD(n) (0xca00 + ((n) * 0x4)) =20 @@ -749,8 +749,6 @@ struct dwc3_ep { struct list_head pending_list; struct list_head started_list; =20 - void __iomem *regs; - struct dwc3_trb *trb_pool; dma_addr_t trb_pool_dma; struct dwc3 *dwc; diff --git a/drivers/usb/dwc3/debugfs.c b/drivers/usb/dwc3/debugfs.c index d18bf5e32cc8..0b45ff16f575 100644 --- a/drivers/usb/dwc3/debugfs.c +++ b/drivers/usb/dwc3/debugfs.c @@ -36,23 +36,19 @@ #define dump_ep_register_set(n) \ { \ .name =3D "DEPCMDPAR2("__stringify(n)")", \ - .offset =3D DWC3_DEP_BASE(n) + \ - DWC3_DEPCMDPAR2, \ + .offset =3D DWC3_DEPCMDPAR2(n), \ }, \ { \ .name =3D "DEPCMDPAR1("__stringify(n)")", \ - .offset =3D DWC3_DEP_BASE(n) + \ - DWC3_DEPCMDPAR1, \ + .offset =3D DWC3_DEPCMDPAR1(n), \ }, \ { \ .name =3D "DEPCMDPAR0("__stringify(n)")", \ - .offset =3D DWC3_DEP_BASE(n) + \ - DWC3_DEPCMDPAR0, \ + .offset =3D DWC3_DEPCMDPAR0(n), \ }, \ { \ .name =3D "DEPCMD("__stringify(n)")", \ - .offset =3D DWC3_DEP_BASE(n) + \ - DWC3_DEPCMD, \ + .offset =3D DWC3_DEPCMD(n), \ } =20 =20 diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 8a35a6901db7..ce087cbc4a53 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -320,6 +320,7 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsign= ed int cmd, =20 int cmd_status =3D 0; int ret =3D -EINVAL; + u8 epnum =3D dep->number; =20 /* * When operating in USB 2.0 speeds (HS/FS), if GUSB2PHYCFG.ENBLSLPM or @@ -355,9 +356,9 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsign= ed int cmd, * improve performance. */ if (DWC3_DEPCMD_CMD(cmd) !=3D DWC3_DEPCMD_UPDATETRANSFER) { - dwc3_writel(dep->regs, DWC3_DEPCMDPAR0, params->param0); - dwc3_writel(dep->regs, DWC3_DEPCMDPAR1, params->param1); - dwc3_writel(dep->regs, DWC3_DEPCMDPAR2, params->param2); + dwc3_writel(dwc->regs, DWC3_DEPCMDPAR0(epnum), params->param0); + dwc3_writel(dwc->regs, DWC3_DEPCMDPAR1(epnum), params->param1); + dwc3_writel(dwc->regs, DWC3_DEPCMDPAR2(epnum), params->param2); } =20 /* @@ -381,7 +382,7 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsign= ed int cmd, else cmd |=3D DWC3_DEPCMD_CMDACT; =20 - dwc3_writel(dep->regs, DWC3_DEPCMD, cmd); + dwc3_writel(dwc->regs, DWC3_DEPCMD(epnum), cmd); =20 if (!(cmd & DWC3_DEPCMD_CMDACT) || (DWC3_DEPCMD_CMD(cmd) =3D=3D DWC3_DEPCMD_ENDTRANSFER && @@ -391,7 +392,7 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsign= ed int cmd, } =20 do { - reg =3D dwc3_readl(dep->regs, DWC3_DEPCMD); + reg =3D dwc3_readl(dwc->regs, DWC3_DEPCMD(epnum)); if (!(reg & DWC3_DEPCMD_CMDACT)) { cmd_status =3D DWC3_DEPCMD_STATUS(reg); =20 @@ -3381,7 +3382,6 @@ static int dwc3_gadget_init_endpoint(struct dwc3 *dwc= , u8 epnum) dep->dwc =3D dwc; dep->number =3D epnum; dep->direction =3D direction; - dep->regs =3D dwc->regs + DWC3_DEP_BASE(epnum); dwc->eps[epnum] =3D dep; dep->combo_num =3D 0; dep->start_cmd_status =3D 0; diff --git a/drivers/usb/dwc3/gadget.h b/drivers/usb/dwc3/gadget.h index d73e735e4081..c3aa9638b7a5 100644 --- a/drivers/usb/dwc3/gadget.h +++ b/drivers/usb/dwc3/gadget.h @@ -132,7 +132,7 @@ static inline void dwc3_gadget_ep_get_transfer_index(st= ruct dwc3_ep *dep) { u32 res_id; =20 - res_id =3D dwc3_readl(dep->regs, DWC3_DEPCMD); + res_id =3D dwc3_readl(dep->dwc->regs, DWC3_DEPCMD(dep->number)); dep->resource_index =3D DWC3_DEPCMD_GET_RSC_IDX(res_id); } =20 --=20 2.34.1 From nobody Sat Feb 7 08:45:30 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 5A9D72765C4 for ; Tue, 13 Jan 2026 10:34:16 +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=1768300463; cv=none; b=TtUrKsgc8LnUSdRpsQ9y8Fn5d7WRwjHceEq5nUbF98UtJ0vhitSl/CZ1PNCNwXac5Anqekr2iHmDFxZp4VXKBWzDxLe9sYukctehNBxolOmX5EydjQ2sAawQZgp4I5sAlWkZPrT+g/j1FhyIpNSFvvAMulGX74WYbsDEHo8n+t0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768300463; c=relaxed/simple; bh=D+9W4dTwWCD2n+CjX4PWKR6Ex4Ovq4O01BJnZ+Kv60E=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=snBsBxx92cSQc8F+8cQ1jkdXVKkMym58zS/djiu+gsIWDqjG4rmWt6XoqYaWRS0wqAs8zbIvP4Do7Mu5tcmQHXiX/2CBuvl+0NyMHyR2efDfP83ObvHr8Pk4NDulen3HwAdIuXFeip5Z+f3Cr0Zu1WlicHZi2tcVz00isUdNaIA= 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=H4ttHvV5; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=WbwcG4dn; 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="H4ttHvV5"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="WbwcG4dn" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60D6qgbp2604040 for ; Tue, 13 Jan 2026 10:34:16 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=uf4DXUdfgfu R90EC5K2dgDqOlGSshHVNwx5HlEmBjOM=; b=H4ttHvV5Hfka4SIA01VwU55P8i9 jbd+eNM3tQ/pgW47wA5oPYY48WF9mltAdiiL26zj83K/NDFyNiqYTy7/IgCz/GGW GFJUAr67wVj2Uba7Bo/fUv/2IoNOEKWsDax2AKhgjA6+qY1ediGBHM6iIXZZk1wr cikEak82inpBO1a6nl73PQnBZR64lyrtm/AL8fq43j+5sO/I1lDqCsMy/7p1Ueuh UhLguw9TjDhlrbfBRtejN04JAQvFIfQxIe/3ZyJhUy9kvvi3yreGBWrTMjJqQ/FN K/gs3hmxObt7pbhlcXUT3adYyXzZJAxSvDEddQBMARiIF67ohSzL0RyPTrw== Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bn7uyta5f-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 13 Jan 2026 10:34:16 +0000 (GMT) Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-81f73452300so996863b3a.1 for ; Tue, 13 Jan 2026 02:34:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1768300455; x=1768905255; 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=uf4DXUdfgfuR90EC5K2dgDqOlGSshHVNwx5HlEmBjOM=; b=WbwcG4dnzSKaO6oqZ2ru/hePEy0SmhYgF6Ez2G+JmjQk+rFe6bQwE5pBVdBXCQd1p0 U1xg+c04xengSgOJ/5iqM6J1eCUoq+ZiGpavWbRZKt3LjmG6iJukGIUZutxGjrRhtWDd 2R6vkm6meVg+QKRQ3hE1MIJW+Pwmv04zH82UpwHHpjFql0lziDTYle6to4Wx1EYM8ZMA CaTwdUv9lS0q4CeInubqvP7Iz6hhi6dgY+GdXDswWbpGJfpFtOSzI7hwiU3NaxIzqp8b 3Fzo7bUqAJi8c4i3kFSGTDDGPQNq13UaMPZP5MbkiRsSnJerGqpKNyEc1ZqpILUB88+r s8Sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768300455; x=1768905255; 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=uf4DXUdfgfuR90EC5K2dgDqOlGSshHVNwx5HlEmBjOM=; b=qxMp0TeKrsQ0MRvuj2MUR71go+dk7PKM3qgbSLXBDf69tbXNs5pjpRqh3DktD/bFx6 laVxPmbzwBkwLzqHTbBLlQm5Pts+mDk4WuVaIriA8MDRo6zEau7nSQCbH3kGYpSascyZ OH40XsQk7hM0fiJywDbQ6p1CIrgh3rETVJflUPVyOkdLlU1wiyHNNe6+3XQa6jZdpJd3 crg0Uyy3uLZP39ldDhWIIw9cBfIPcSwcos+ctuux+O9bPgpiYVKCncTB337HMKbMr4PW iIhxVUU2wcFuiqUhor+SoMZo12ayGA4fAfZIOEuErwt594b8Of6dLkMxwhZ5qzBkGOI0 lJ/g== X-Forwarded-Encrypted: i=1; AJvYcCVHKyUrus4gRJIlfOV3QZVtdwEe8z9WYhX0vKen02rFLGwTKXZlTTQr+Iok1deapgv3lTOLi+dYNqX1GcM=@vger.kernel.org X-Gm-Message-State: AOJu0YzATIJh5moz8uAM09SzXU2I9+v6zfvFCoRelcMVa8Fk+/OLnw2/ 4zlRRDellmNz41xDxeJ4M/7bPIHY2rKdY2HZaIqn4N/itKlswuVAsRl+n8EyuJW/YJgZfqm1/RH MrerswoZ0wyhc7SbLqudidMxIfXqrdWQiRCWMQInDdHyh/2s/26hTuehlhOWfJfTZYEWO6SuLsw I= X-Gm-Gg: AY/fxX68NhL39JabVm+000hAn3d9V41wBTWGOrouGvP66YikQx9bIj0rugk3yKB5zum I5cnMpprjNvcxlIh2tnEbQ5+3zU5mTL/Lkx+RRu+Pj2gRgtTd5K/3FfX6SYShorL/sZutUFfXQW gAUHwDwFMKT+CkDBXWcatdsV6THpUEzdNgfLPY3A+K27Ak+4BLPE3xKSMpYPDpppr/wZoE0Nu6q POOqQNngbyrwbDJiROROanqZMi9ND8boWXi+7M84COqZU9sG7iexayIUz/BbRFopdwNMaodq/WA +KmYeFkU0x5mQHd8UwDWEvBfOs5gHkKiGz4XdNmN51o2V5wfyFLTnaM8TE0zwtB85/OX192qsnk uWLy+BAjFSkzAB9w2rH6Bi02NDhw5fkcTpH8ZDA== X-Received: by 2002:a05:6a21:3299:b0:389:8f3f:50d0 with SMTP id adf61e73a8af0-3898f9c6cc9mr16969024637.60.1768300454416; Tue, 13 Jan 2026 02:34:14 -0800 (PST) X-Google-Smtp-Source: AGHT+IHYR3gTGyUpN2l8q19FSds675m/EkOZGUhUFOkZnfUu1x1mRQyoKvo9u9dxRsPFtGE94WB3BA== X-Received: by 2002:a05:6a21:3299:b0:389:8f3f:50d0 with SMTP id adf61e73a8af0-3898f9c6cc9mr16968988637.60.1768300453540; Tue, 13 Jan 2026 02:34:13 -0800 (PST) Received: from hu-prashk-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c4cca06b2edsm19769911a12.32.2026.01.13.02.34.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Jan 2026 02:34:13 -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 v3 2/3] usb: dwc3: Add dwc pointer to dwc3_readl/writel Date: Tue, 13 Jan 2026 16:03:59 +0530 Message-Id: <20260113103400.2347763-3-prashanth.k@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260113103400.2347763-1-prashanth.k@oss.qualcomm.com> References: <20260113103400.2347763-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-ORIG-GUID: HUfhJW0SV6O9X3AriSDOlfDnGuyiMnTj X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTEzMDA4OSBTYWx0ZWRfX1yv4br2GPILq cf24Qd0gdZ9sYBsguFUVGH9NgcgJvW7RYx9EAmSOT8Jpg3l8n3+whU3JN9hV0jXSGVhXCv5Jpl7 KECKW50XMYqoALcTbapxT25ayrcjLor5jPzV1tol2kgCo9YgPZkknF5d4axFvIlsCsqLeXL1lP0 +ZyTzVRb0V0T9gUJBOOJIWyUWZ5ThFtVnWRmKENaS8gWtB/8IrCGUXq0FXjQcM1XUmaoma0/Tgg 5PiDsU0y9tdIOO1hQaSMcCDaKVcgrJMQ4+0IAIgv2qTJaP03Nt94FPMAKSWaqYLGMKUEfCr7+rj 1KP2v30ZUe4/uCZYePRXgTH9EOmelj1Dmk5FnCsx1ItKSipoinqe+0L2rg6rSMW/giFCatiYcl8 2y0l8YU60BgVCSBUPVd3vR/J086XAdi2R4jRBJ962KnAtWK9CeEauRnUIur0Qfi2QpP8T1CKCu6 t4TsWNZLALKcop8LbnA== X-Authority-Analysis: v=2.4 cv=bpdBxUai c=1 sm=1 tr=0 ts=69661fa8 cx=c_pps a=m5Vt/hrsBiPMCU0y4gIsQw==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=jIQo8A4GAAAA:8 a=1-JGb9IuH62Of12rmQMA:9 a=IoOABgeZipijB_acs4fv:22 X-Proofpoint-GUID: HUfhJW0SV6O9X3AriSDOlfDnGuyiMnTj 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-13_02,2026-01-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 priorityscore=1501 lowpriorityscore=0 adultscore=0 impostorscore=0 clxscore=1015 phishscore=0 spamscore=0 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601130089 Content-Type: text/plain; charset="utf-8" Use dwc pointer in dwc3_readl() dwc3_writel() instead of passing the dwc->regs. This would help us access the dwc structure and log the base address in traces. There's no functional changes in this patch, just refactoring existing APIs. Signed-off-by: Prashanth K Acked-by: Thinh Nguyen --- drivers/usb/dwc3/core.c | 194 ++++++++++++++++++------------------- drivers/usb/dwc3/debugfs.c | 32 +++--- drivers/usb/dwc3/drd.c | 76 +++++++-------- drivers/usb/dwc3/ep0.c | 20 ++-- drivers/usb/dwc3/gadget.c | 160 +++++++++++++++--------------- drivers/usb/dwc3/gadget.h | 4 +- drivers/usb/dwc3/io.h | 7 +- drivers/usb/dwc3/ulpi.c | 10 +- 8 files changed, 253 insertions(+), 250 deletions(-) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index ec8407972b9d..670a9d4bfff2 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -114,23 +114,23 @@ void dwc3_enable_susphy(struct dwc3 *dwc, bool enable) int i; =20 for (i =3D 0; i < dwc->num_usb3_ports; i++) { - reg =3D dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(i)); + reg =3D dwc3_readl(dwc, DWC3_GUSB3PIPECTL(i)); if (enable && !dwc->dis_u3_susphy_quirk) reg |=3D DWC3_GUSB3PIPECTL_SUSPHY; else reg &=3D ~DWC3_GUSB3PIPECTL_SUSPHY; =20 - dwc3_writel(dwc->regs, DWC3_GUSB3PIPECTL(i), reg); + dwc3_writel(dwc, DWC3_GUSB3PIPECTL(i), reg); } =20 for (i =3D 0; i < dwc->num_usb2_ports; i++) { - reg =3D dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(i)); + reg =3D dwc3_readl(dwc, DWC3_GUSB2PHYCFG(i)); if (enable && !dwc->dis_u2_susphy_quirk) reg |=3D DWC3_GUSB2PHYCFG_SUSPHY; else reg &=3D ~DWC3_GUSB2PHYCFG_SUSPHY; =20 - dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(i), reg); + dwc3_writel(dwc, DWC3_GUSB2PHYCFG(i), reg); } } EXPORT_SYMBOL_GPL(dwc3_enable_susphy); @@ -140,7 +140,7 @@ void dwc3_set_prtcap(struct dwc3 *dwc, u32 mode, bool i= gnore_susphy) unsigned int hw_mode; u32 reg; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_GCTL); + reg =3D dwc3_readl(dwc, DWC3_GCTL); =20 /* * For DRD controllers, GUSB3PIPECTL.SUSPENDENABLE and @@ -155,7 +155,7 @@ void dwc3_set_prtcap(struct dwc3 *dwc, u32 mode, bool i= gnore_susphy) =20 reg &=3D ~(DWC3_GCTL_PRTCAPDIR(DWC3_GCTL_PRTCAP_OTG)); reg |=3D DWC3_GCTL_PRTCAPDIR(mode); - dwc3_writel(dwc->regs, DWC3_GCTL, reg); + dwc3_writel(dwc, DWC3_GCTL, reg); =20 dwc->current_dr_role =3D mode; trace_dwc3_set_prtcap(mode); @@ -216,9 +216,9 @@ static void __dwc3_set_mode(struct work_struct *work) if (dwc->current_dr_role && ((DWC3_IP_IS(DWC3) || DWC3_VER_IS_PRIOR(DWC31, 190A)) && desired_dr_role !=3D DWC3_GCTL_PRTCAP_OTG)) { - reg =3D dwc3_readl(dwc->regs, DWC3_GCTL); + reg =3D dwc3_readl(dwc, DWC3_GCTL); reg |=3D DWC3_GCTL_CORESOFTRESET; - dwc3_writel(dwc->regs, DWC3_GCTL, reg); + dwc3_writel(dwc, DWC3_GCTL, reg); =20 /* * Wait for internal clocks to synchronized. DWC_usb31 and @@ -228,9 +228,9 @@ static void __dwc3_set_mode(struct work_struct *work) */ msleep(100); =20 - reg =3D dwc3_readl(dwc->regs, DWC3_GCTL); + reg =3D dwc3_readl(dwc, DWC3_GCTL); reg &=3D ~DWC3_GCTL_CORESOFTRESET; - dwc3_writel(dwc->regs, DWC3_GCTL, reg); + dwc3_writel(dwc, DWC3_GCTL, reg); } =20 spin_lock_irqsave(&dwc->lock, flags); @@ -254,9 +254,9 @@ static void __dwc3_set_mode(struct work_struct *work) phy_set_mode(dwc->usb3_generic_phy[i], PHY_MODE_USB_HOST); =20 if (dwc->dis_split_quirk) { - reg =3D dwc3_readl(dwc->regs, DWC3_GUCTL3); + reg =3D dwc3_readl(dwc, DWC3_GUCTL3); reg |=3D DWC3_GUCTL3_SPLITDISABLE; - dwc3_writel(dwc->regs, DWC3_GUCTL3, reg); + dwc3_writel(dwc, DWC3_GUCTL3, reg); } } break; @@ -306,11 +306,11 @@ u32 dwc3_core_fifo_space(struct dwc3_ep *dep, u8 type) struct dwc3 *dwc =3D dep->dwc; u32 reg; =20 - dwc3_writel(dwc->regs, DWC3_GDBGFIFOSPACE, - DWC3_GDBGFIFOSPACE_NUM(dep->number) | - DWC3_GDBGFIFOSPACE_TYPE(type)); + dwc3_writel(dwc, DWC3_GDBGFIFOSPACE, + DWC3_GDBGFIFOSPACE_NUM(dep->number) | + DWC3_GDBGFIFOSPACE_TYPE(type)); =20 - reg =3D dwc3_readl(dwc->regs, DWC3_GDBGFIFOSPACE); + reg =3D dwc3_readl(dwc, DWC3_GDBGFIFOSPACE); =20 return DWC3_GDBGFIFOSPACE_SPACE_AVAILABLE(reg); } @@ -332,7 +332,7 @@ int dwc3_core_soft_reset(struct dwc3 *dwc) if (dwc->current_dr_role =3D=3D DWC3_GCTL_PRTCAP_HOST) return 0; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DCTL); + reg =3D dwc3_readl(dwc, DWC3_DCTL); reg |=3D DWC3_DCTL_CSFTRST; reg &=3D ~DWC3_DCTL_RUN_STOP; dwc3_gadget_dctl_write_safe(dwc, reg); @@ -347,7 +347,7 @@ int dwc3_core_soft_reset(struct dwc3 *dwc) retries =3D 10; =20 do { - reg =3D dwc3_readl(dwc->regs, DWC3_DCTL); + reg =3D dwc3_readl(dwc, DWC3_DCTL); if (!(reg & DWC3_DCTL_CSFTRST)) goto done; =20 @@ -387,12 +387,12 @@ static void dwc3_frame_length_adjustment(struct dwc3 = *dwc) if (dwc->fladj =3D=3D 0) return; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_GFLADJ); + reg =3D dwc3_readl(dwc, DWC3_GFLADJ); dft =3D reg & DWC3_GFLADJ_30MHZ_MASK; if (dft !=3D dwc->fladj) { reg &=3D ~DWC3_GFLADJ_30MHZ_MASK; reg |=3D DWC3_GFLADJ_30MHZ_SDBND_SEL | dwc->fladj; - dwc3_writel(dwc->regs, DWC3_GFLADJ, reg); + dwc3_writel(dwc, DWC3_GFLADJ, reg); } } =20 @@ -424,10 +424,10 @@ static void dwc3_ref_clk_period(struct dwc3 *dwc) return; } =20 - reg =3D dwc3_readl(dwc->regs, DWC3_GUCTL); + reg =3D dwc3_readl(dwc, DWC3_GUCTL); reg &=3D ~DWC3_GUCTL_REFCLKPER_MASK; reg |=3D FIELD_PREP(DWC3_GUCTL_REFCLKPER_MASK, period); - dwc3_writel(dwc->regs, DWC3_GUCTL, reg); + dwc3_writel(dwc, DWC3_GUCTL, reg); =20 if (DWC3_VER_IS_PRIOR(DWC3, 250A)) return; @@ -455,7 +455,7 @@ static void dwc3_ref_clk_period(struct dwc3 *dwc) */ decr =3D 480000000 / rate; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_GFLADJ); + reg =3D dwc3_readl(dwc, DWC3_GFLADJ); reg &=3D ~DWC3_GFLADJ_REFCLK_FLADJ_MASK & ~DWC3_GFLADJ_240MHZDECR & ~DWC3_GFLADJ_240MHZDECR_PLS1; @@ -466,7 +466,7 @@ static void dwc3_ref_clk_period(struct dwc3 *dwc) if (dwc->gfladj_refclk_lpm_sel) reg |=3D DWC3_GFLADJ_REFCLK_LPM_SEL; =20 - dwc3_writel(dwc->regs, DWC3_GFLADJ, reg); + dwc3_writel(dwc, DWC3_GFLADJ, reg); } =20 /** @@ -569,16 +569,16 @@ int dwc3_event_buffers_setup(struct dwc3 *dwc) =20 evt =3D dwc->ev_buf; evt->lpos =3D 0; - dwc3_writel(dwc->regs, DWC3_GEVNTADRLO(0), - lower_32_bits(evt->dma)); - dwc3_writel(dwc->regs, DWC3_GEVNTADRHI(0), - upper_32_bits(evt->dma)); - dwc3_writel(dwc->regs, DWC3_GEVNTSIZ(0), - DWC3_GEVNTSIZ_SIZE(evt->length)); + dwc3_writel(dwc, DWC3_GEVNTADRLO(0), + lower_32_bits(evt->dma)); + dwc3_writel(dwc, DWC3_GEVNTADRHI(0), + upper_32_bits(evt->dma)); + dwc3_writel(dwc, DWC3_GEVNTSIZ(0), + DWC3_GEVNTSIZ_SIZE(evt->length)); =20 /* Clear any stale event */ - reg =3D dwc3_readl(dwc->regs, DWC3_GEVNTCOUNT(0)); - dwc3_writel(dwc->regs, DWC3_GEVNTCOUNT(0), reg); + reg =3D dwc3_readl(dwc, DWC3_GEVNTCOUNT(0)); + dwc3_writel(dwc, DWC3_GEVNTCOUNT(0), reg); return 0; } =20 @@ -593,7 +593,7 @@ void dwc3_event_buffers_cleanup(struct dwc3 *dwc) * Exynos platforms may not be able to access event buffer if the * controller failed to halt on dwc3_core_exit(). */ - reg =3D dwc3_readl(dwc->regs, DWC3_DSTS); + reg =3D dwc3_readl(dwc, DWC3_DSTS); if (!(reg & DWC3_DSTS_DEVCTRLHLT)) return; =20 @@ -601,14 +601,14 @@ void dwc3_event_buffers_cleanup(struct dwc3 *dwc) =20 evt->lpos =3D 0; =20 - dwc3_writel(dwc->regs, DWC3_GEVNTADRLO(0), 0); - dwc3_writel(dwc->regs, DWC3_GEVNTADRHI(0), 0); - dwc3_writel(dwc->regs, DWC3_GEVNTSIZ(0), DWC3_GEVNTSIZ_INTMASK + dwc3_writel(dwc, DWC3_GEVNTADRLO(0), 0); + dwc3_writel(dwc, DWC3_GEVNTADRHI(0), 0); + dwc3_writel(dwc, DWC3_GEVNTSIZ(0), DWC3_GEVNTSIZ_INTMASK | DWC3_GEVNTSIZ_SIZE(0)); =20 /* Clear any stale event */ - reg =3D dwc3_readl(dwc->regs, DWC3_GEVNTCOUNT(0)); - dwc3_writel(dwc->regs, DWC3_GEVNTCOUNT(0), reg); + reg =3D dwc3_readl(dwc, DWC3_GEVNTCOUNT(0)); + dwc3_writel(dwc, DWC3_GEVNTCOUNT(0), reg); } =20 static void dwc3_core_num_eps(struct dwc3 *dwc) @@ -622,18 +622,18 @@ static void dwc3_cache_hwparams(struct dwc3 *dwc) { struct dwc3_hwparams *parms =3D &dwc->hwparams; =20 - parms->hwparams0 =3D dwc3_readl(dwc->regs, DWC3_GHWPARAMS0); - parms->hwparams1 =3D dwc3_readl(dwc->regs, DWC3_GHWPARAMS1); - parms->hwparams2 =3D dwc3_readl(dwc->regs, DWC3_GHWPARAMS2); - parms->hwparams3 =3D dwc3_readl(dwc->regs, DWC3_GHWPARAMS3); - parms->hwparams4 =3D dwc3_readl(dwc->regs, DWC3_GHWPARAMS4); - parms->hwparams5 =3D dwc3_readl(dwc->regs, DWC3_GHWPARAMS5); - parms->hwparams6 =3D dwc3_readl(dwc->regs, DWC3_GHWPARAMS6); - parms->hwparams7 =3D dwc3_readl(dwc->regs, DWC3_GHWPARAMS7); - parms->hwparams8 =3D dwc3_readl(dwc->regs, DWC3_GHWPARAMS8); + parms->hwparams0 =3D dwc3_readl(dwc, DWC3_GHWPARAMS0); + parms->hwparams1 =3D dwc3_readl(dwc, DWC3_GHWPARAMS1); + parms->hwparams2 =3D dwc3_readl(dwc, DWC3_GHWPARAMS2); + parms->hwparams3 =3D dwc3_readl(dwc, DWC3_GHWPARAMS3); + parms->hwparams4 =3D dwc3_readl(dwc, DWC3_GHWPARAMS4); + parms->hwparams5 =3D dwc3_readl(dwc, DWC3_GHWPARAMS5); + parms->hwparams6 =3D dwc3_readl(dwc, DWC3_GHWPARAMS6); + parms->hwparams7 =3D dwc3_readl(dwc, DWC3_GHWPARAMS7); + parms->hwparams8 =3D dwc3_readl(dwc, DWC3_GHWPARAMS8); =20 if (DWC3_IP_IS(DWC32)) - parms->hwparams9 =3D dwc3_readl(dwc->regs, DWC3_GHWPARAMS9); + parms->hwparams9 =3D dwc3_readl(dwc, DWC3_GHWPARAMS9); } =20 static void dwc3_config_soc_bus(struct dwc3 *dwc) @@ -641,10 +641,10 @@ static void dwc3_config_soc_bus(struct dwc3 *dwc) if (dwc->gsbuscfg0_reqinfo !=3D DWC3_GSBUSCFG0_REQINFO_UNSPECIFIED) { u32 reg; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_GSBUSCFG0); + reg =3D dwc3_readl(dwc, DWC3_GSBUSCFG0); reg &=3D ~DWC3_GSBUSCFG0_REQINFO(~0); reg |=3D DWC3_GSBUSCFG0_REQINFO(dwc->gsbuscfg0_reqinfo); - dwc3_writel(dwc->regs, DWC3_GSBUSCFG0, reg); + dwc3_writel(dwc, DWC3_GSBUSCFG0, reg); } } =20 @@ -668,7 +668,7 @@ static int dwc3_ss_phy_setup(struct dwc3 *dwc, int inde= x) { u32 reg; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(index)); + reg =3D dwc3_readl(dwc, DWC3_GUSB3PIPECTL(index)); =20 /* * Make sure UX_EXIT_PX is cleared as that causes issues with some @@ -706,7 +706,7 @@ static int dwc3_ss_phy_setup(struct dwc3 *dwc, int inde= x) if (dwc->dis_del_phy_power_chg_quirk) reg &=3D ~DWC3_GUSB3PIPECTL_DEPOCHANGE; =20 - dwc3_writel(dwc->regs, DWC3_GUSB3PIPECTL(index), reg); + dwc3_writel(dwc, DWC3_GUSB3PIPECTL(index), reg); =20 return 0; } @@ -715,7 +715,7 @@ static int dwc3_hs_phy_setup(struct dwc3 *dwc, int inde= x) { u32 reg; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(index)); + reg =3D dwc3_readl(dwc, DWC3_GUSB2PHYCFG(index)); =20 /* Select the HS PHY interface */ switch (DWC3_GHWPARAMS3_HSPHY_IFC(dwc->hwparams.hwparams3)) { @@ -727,7 +727,7 @@ static int dwc3_hs_phy_setup(struct dwc3 *dwc, int inde= x) } else if (dwc->hsphy_interface && !strncmp(dwc->hsphy_interface, "ulpi", 4)) { reg |=3D DWC3_GUSB2PHYCFG_ULPI_UTMI; - dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(index), reg); + dwc3_writel(dwc, DWC3_GUSB2PHYCFG(index), reg); } else { /* Relying on default value. */ if (!(reg & DWC3_GUSB2PHYCFG_ULPI_UTMI)) @@ -777,7 +777,7 @@ static int dwc3_hs_phy_setup(struct dwc3 *dwc, int inde= x) if (dwc->ulpi_ext_vbus_drv) reg |=3D DWC3_GUSB2PHYCFG_ULPIEXTVBUSDRV; =20 - dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(index), reg); + dwc3_writel(dwc, DWC3_GUSB2PHYCFG(index), reg); =20 return 0; } @@ -991,15 +991,15 @@ static bool dwc3_core_is_valid(struct dwc3 *dwc) { u32 reg; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_GSNPSID); + reg =3D dwc3_readl(dwc, DWC3_GSNPSID); dwc->ip =3D DWC3_GSNPS_ID(reg); =20 /* This should read as U3 followed by revision number */ if (DWC3_IP_IS(DWC3)) { dwc->revision =3D reg; } else if (DWC3_IP_IS(DWC31) || DWC3_IP_IS(DWC32)) { - dwc->revision =3D dwc3_readl(dwc->regs, DWC3_VER_NUMBER); - dwc->version_type =3D dwc3_readl(dwc->regs, DWC3_VER_TYPE); + dwc->revision =3D dwc3_readl(dwc, DWC3_VER_NUMBER); + dwc->version_type =3D dwc3_readl(dwc, DWC3_VER_TYPE); } else { return false; } @@ -1013,7 +1013,7 @@ static void dwc3_core_setup_global_control(struct dwc= 3 *dwc) unsigned int hw_mode; u32 reg; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_GCTL); + reg =3D dwc3_readl(dwc, DWC3_GCTL); reg &=3D ~DWC3_GCTL_SCALEDOWN_MASK; hw_mode =3D DWC3_GHWPARAMS0_MODE(dwc->hwparams.hwparams0); power_opt =3D DWC3_GHWPARAMS1_EN_PWROPT(dwc->hwparams.hwparams1); @@ -1091,7 +1091,7 @@ static void dwc3_core_setup_global_control(struct dwc= 3 *dwc) if (DWC3_VER_IS_PRIOR(DWC3, 190A)) reg |=3D DWC3_GCTL_U2RSTECN; =20 - dwc3_writel(dwc->regs, DWC3_GCTL, reg); + dwc3_writel(dwc, DWC3_GCTL, reg); } =20 static int dwc3_core_get_phy(struct dwc3 *dwc); @@ -1111,7 +1111,7 @@ static void dwc3_set_incr_burst_type(struct dwc3 *dwc) int ret; int i; =20 - cfg =3D dwc3_readl(dwc->regs, DWC3_GSBUSCFG0); + cfg =3D dwc3_readl(dwc, DWC3_GSBUSCFG0); =20 /* * Handle property "snps,incr-burst-type-adjustment". @@ -1186,7 +1186,7 @@ static void dwc3_set_incr_burst_type(struct dwc3 *dwc) break; } =20 - dwc3_writel(dwc->regs, DWC3_GSBUSCFG0, cfg); + dwc3_writel(dwc, DWC3_GSBUSCFG0, cfg); } =20 static void dwc3_set_power_down_clk_scale(struct dwc3 *dwc) @@ -1211,12 +1211,12 @@ static void dwc3_set_power_down_clk_scale(struct dw= c3 *dwc) * (3x or more) to be within the requirement. */ scale =3D DIV_ROUND_UP(clk_get_rate(dwc->susp_clk), 16000); - reg =3D dwc3_readl(dwc->regs, DWC3_GCTL); + reg =3D dwc3_readl(dwc, DWC3_GCTL); if ((reg & DWC3_GCTL_PWRDNSCALE_MASK) < DWC3_GCTL_PWRDNSCALE(scale) || (reg & DWC3_GCTL_PWRDNSCALE_MASK) > DWC3_GCTL_PWRDNSCALE(scale*3)) { reg &=3D ~(DWC3_GCTL_PWRDNSCALE_MASK); reg |=3D DWC3_GCTL_PWRDNSCALE(scale); - dwc3_writel(dwc->regs, DWC3_GCTL, reg); + dwc3_writel(dwc, DWC3_GCTL, reg); } } =20 @@ -1239,7 +1239,7 @@ static void dwc3_config_threshold(struct dwc3 *dwc) tx_maxburst =3D dwc->tx_max_burst_prd; =20 if (rx_thr_num && rx_maxburst) { - reg =3D dwc3_readl(dwc->regs, DWC3_GRXTHRCFG); + reg =3D dwc3_readl(dwc, DWC3_GRXTHRCFG); reg |=3D DWC31_RXTHRNUMPKTSEL_PRD; =20 reg &=3D ~DWC31_RXTHRNUMPKT_PRD(~0); @@ -1248,11 +1248,11 @@ static void dwc3_config_threshold(struct dwc3 *dwc) reg &=3D ~DWC31_MAXRXBURSTSIZE_PRD(~0); reg |=3D DWC31_MAXRXBURSTSIZE_PRD(rx_maxburst); =20 - dwc3_writel(dwc->regs, DWC3_GRXTHRCFG, reg); + dwc3_writel(dwc, DWC3_GRXTHRCFG, reg); } =20 if (tx_thr_num && tx_maxburst) { - reg =3D dwc3_readl(dwc->regs, DWC3_GTXTHRCFG); + reg =3D dwc3_readl(dwc, DWC3_GTXTHRCFG); reg |=3D DWC31_TXTHRNUMPKTSEL_PRD; =20 reg &=3D ~DWC31_TXTHRNUMPKT_PRD(~0); @@ -1261,7 +1261,7 @@ static void dwc3_config_threshold(struct dwc3 *dwc) reg &=3D ~DWC31_MAXTXBURSTSIZE_PRD(~0); reg |=3D DWC31_MAXTXBURSTSIZE_PRD(tx_maxburst); =20 - dwc3_writel(dwc->regs, DWC3_GTXTHRCFG, reg); + dwc3_writel(dwc, DWC3_GTXTHRCFG, reg); } } =20 @@ -1272,7 +1272,7 @@ static void dwc3_config_threshold(struct dwc3 *dwc) =20 if (DWC3_IP_IS(DWC3)) { if (rx_thr_num && rx_maxburst) { - reg =3D dwc3_readl(dwc->regs, DWC3_GRXTHRCFG); + reg =3D dwc3_readl(dwc, DWC3_GRXTHRCFG); reg |=3D DWC3_GRXTHRCFG_PKTCNTSEL; =20 reg &=3D ~DWC3_GRXTHRCFG_RXPKTCNT(~0); @@ -1281,11 +1281,11 @@ static void dwc3_config_threshold(struct dwc3 *dwc) reg &=3D ~DWC3_GRXTHRCFG_MAXRXBURSTSIZE(~0); reg |=3D DWC3_GRXTHRCFG_MAXRXBURSTSIZE(rx_maxburst); =20 - dwc3_writel(dwc->regs, DWC3_GRXTHRCFG, reg); + dwc3_writel(dwc, DWC3_GRXTHRCFG, reg); } =20 if (tx_thr_num && tx_maxburst) { - reg =3D dwc3_readl(dwc->regs, DWC3_GTXTHRCFG); + reg =3D dwc3_readl(dwc, DWC3_GTXTHRCFG); reg |=3D DWC3_GTXTHRCFG_PKTCNTSEL; =20 reg &=3D ~DWC3_GTXTHRCFG_TXPKTCNT(~0); @@ -1294,11 +1294,11 @@ static void dwc3_config_threshold(struct dwc3 *dwc) reg &=3D ~DWC3_GTXTHRCFG_MAXTXBURSTSIZE(~0); reg |=3D DWC3_GTXTHRCFG_MAXTXBURSTSIZE(tx_maxburst); =20 - dwc3_writel(dwc->regs, DWC3_GTXTHRCFG, reg); + dwc3_writel(dwc, DWC3_GTXTHRCFG, reg); } } else { if (rx_thr_num && rx_maxburst) { - reg =3D dwc3_readl(dwc->regs, DWC3_GRXTHRCFG); + reg =3D dwc3_readl(dwc, DWC3_GRXTHRCFG); reg |=3D DWC31_GRXTHRCFG_PKTCNTSEL; =20 reg &=3D ~DWC31_GRXTHRCFG_RXPKTCNT(~0); @@ -1307,11 +1307,11 @@ static void dwc3_config_threshold(struct dwc3 *dwc) reg &=3D ~DWC31_GRXTHRCFG_MAXRXBURSTSIZE(~0); reg |=3D DWC31_GRXTHRCFG_MAXRXBURSTSIZE(rx_maxburst); =20 - dwc3_writel(dwc->regs, DWC3_GRXTHRCFG, reg); + dwc3_writel(dwc, DWC3_GRXTHRCFG, reg); } =20 if (tx_thr_num && tx_maxburst) { - reg =3D dwc3_readl(dwc->regs, DWC3_GTXTHRCFG); + reg =3D dwc3_readl(dwc, DWC3_GTXTHRCFG); reg |=3D DWC31_GTXTHRCFG_PKTCNTSEL; =20 reg &=3D ~DWC31_GTXTHRCFG_TXPKTCNT(~0); @@ -1320,7 +1320,7 @@ static void dwc3_config_threshold(struct dwc3 *dwc) reg &=3D ~DWC31_GTXTHRCFG_MAXTXBURSTSIZE(~0); reg |=3D DWC31_GTXTHRCFG_MAXTXBURSTSIZE(tx_maxburst); =20 - dwc3_writel(dwc->regs, DWC3_GTXTHRCFG, reg); + dwc3_writel(dwc, DWC3_GTXTHRCFG, reg); } } } @@ -1343,7 +1343,7 @@ int dwc3_core_init(struct dwc3 *dwc) * Write Linux Version Code to our GUID register so it's easy to figure * out which kernel version a bug was found. */ - dwc3_writel(dwc->regs, DWC3_GUID, LINUX_VERSION_CODE); + dwc3_writel(dwc, DWC3_GUID, LINUX_VERSION_CODE); =20 ret =3D dwc3_phy_setup(dwc); if (ret) @@ -1408,9 +1408,9 @@ int dwc3_core_init(struct dwc3 *dwc) * DWC_usb31 controller. */ if (DWC3_VER_IS_WITHIN(DWC3, 310A, ANY)) { - reg =3D dwc3_readl(dwc->regs, DWC3_GUCTL2); + reg =3D dwc3_readl(dwc, DWC3_GUCTL2); reg |=3D DWC3_GUCTL2_RST_ACTBITLATER; - dwc3_writel(dwc->regs, DWC3_GUCTL2, reg); + dwc3_writel(dwc, DWC3_GUCTL2, reg); } =20 /* @@ -1423,9 +1423,9 @@ int dwc3_core_init(struct dwc3 *dwc) * setting GUCTL2[19] by default; instead, use GUCTL2[19] =3D 0. */ if (DWC3_VER_IS(DWC3, 320A)) { - reg =3D dwc3_readl(dwc->regs, DWC3_GUCTL2); + reg =3D dwc3_readl(dwc, DWC3_GUCTL2); reg &=3D ~DWC3_GUCTL2_LC_TIMER; - dwc3_writel(dwc->regs, DWC3_GUCTL2, reg); + dwc3_writel(dwc, DWC3_GUCTL2, reg); } =20 /* @@ -1438,13 +1438,13 @@ int dwc3_core_init(struct dwc3 *dwc) * legacy ULPI PHYs. */ if (dwc->resume_hs_terminations) { - reg =3D dwc3_readl(dwc->regs, DWC3_GUCTL1); + reg =3D dwc3_readl(dwc, DWC3_GUCTL1); reg |=3D DWC3_GUCTL1_RESUME_OPMODE_HS_HOST; - dwc3_writel(dwc->regs, DWC3_GUCTL1, reg); + dwc3_writel(dwc, DWC3_GUCTL1, reg); } =20 if (!DWC3_VER_IS_PRIOR(DWC3, 250A)) { - reg =3D dwc3_readl(dwc->regs, DWC3_GUCTL1); + reg =3D dwc3_readl(dwc, DWC3_GUCTL1); =20 /* * Enable hardware control of sending remote wakeup @@ -1479,7 +1479,7 @@ int dwc3_core_init(struct dwc3 *dwc) reg &=3D ~DWC3_GUCTL1_DEV_FORCE_20_CLK_FOR_30_CLK; } =20 - dwc3_writel(dwc->regs, DWC3_GUCTL1, reg); + dwc3_writel(dwc, DWC3_GUCTL1, reg); } =20 dwc3_config_threshold(dwc); @@ -1490,9 +1490,9 @@ int dwc3_core_init(struct dwc3 *dwc) int i; =20 for (i =3D 0; i < dwc->num_usb3_ports; i++) { - reg =3D dwc3_readl(dwc->regs, DWC3_LLUCTL(i)); + reg =3D dwc3_readl(dwc, DWC3_LLUCTL(i)); reg |=3D DWC3_LLUCTL_FORCE_GEN1; - dwc3_writel(dwc->regs, DWC3_LLUCTL(i), reg); + dwc3_writel(dwc, DWC3_LLUCTL(i), reg); } } =20 @@ -1511,9 +1511,9 @@ int dwc3_core_init(struct dwc3 *dwc) * function is available only from version 1.70a. */ if (DWC3_VER_IS_WITHIN(DWC31, 170A, 180A)) { - reg =3D dwc3_readl(dwc->regs, DWC3_GUCTL3); + reg =3D dwc3_readl(dwc, DWC3_GUCTL3); reg |=3D DWC3_GUCTL3_USB20_RETRY_DISABLE; - dwc3_writel(dwc->regs, DWC3_GUCTL3, reg); + dwc3_writel(dwc, DWC3_GUCTL3, reg); } =20 return 0; @@ -2437,9 +2437,9 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_m= essage_t msg) int ret; =20 if (!pm_runtime_suspended(dwc->dev) && !PMSG_IS_AUTO(msg)) { - dwc->susphy_state =3D (dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)) & + dwc->susphy_state =3D (dwc3_readl(dwc, DWC3_GUSB2PHYCFG(0)) & DWC3_GUSB2PHYCFG_SUSPHY) || - (dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(0)) & + (dwc3_readl(dwc, DWC3_GUSB3PIPECTL(0)) & DWC3_GUSB3PIPECTL_SUSPHY); /* * TI AM62 platform requires SUSPHY to be @@ -2469,10 +2469,10 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm= _message_t msg) if (dwc->dis_u2_susphy_quirk || dwc->dis_enblslpm_quirk) { for (i =3D 0; i < dwc->num_usb2_ports; i++) { - reg =3D dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(i)); + reg =3D dwc3_readl(dwc, DWC3_GUSB2PHYCFG(i)); reg |=3D DWC3_GUSB2PHYCFG_ENBLSLPM | DWC3_GUSB2PHYCFG_SUSPHY; - dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(i), reg); + dwc3_writel(dwc, DWC3_GUSB2PHYCFG(i), reg); } =20 /* Give some time for USB2 PHY to suspend */ @@ -2532,14 +2532,14 @@ static int dwc3_resume_common(struct dwc3 *dwc, pm_= message_t msg) } /* Restore GUSB2PHYCFG bits that were modified in suspend */ for (i =3D 0; i < dwc->num_usb2_ports; i++) { - reg =3D dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(i)); + reg =3D dwc3_readl(dwc, DWC3_GUSB2PHYCFG(i)); if (dwc->dis_u2_susphy_quirk) reg &=3D ~DWC3_GUSB2PHYCFG_SUSPHY; =20 if (dwc->dis_enblslpm_quirk) reg &=3D ~DWC3_GUSB2PHYCFG_ENBLSLPM; =20 - dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(i), reg); + dwc3_writel(dwc, DWC3_GUSB2PHYCFG(i), reg); } =20 for (i =3D 0; i < dwc->num_usb2_ports; i++) @@ -2721,9 +2721,9 @@ void dwc3_pm_complete(struct dwc3 *dwc) =20 if (dwc->current_dr_role =3D=3D DWC3_GCTL_PRTCAP_HOST && dwc->dis_split_quirk) { - reg =3D dwc3_readl(dwc->regs, DWC3_GUCTL3); + reg =3D dwc3_readl(dwc, DWC3_GUCTL3); reg |=3D DWC3_GUCTL3_SPLITDISABLE; - dwc3_writel(dwc->regs, DWC3_GUCTL3, reg); + dwc3_writel(dwc, DWC3_GUCTL3, reg); } } EXPORT_SYMBOL_GPL(dwc3_pm_complete); diff --git a/drivers/usb/dwc3/debugfs.c b/drivers/usb/dwc3/debugfs.c index 0b45ff16f575..ffb1101f55c7 100644 --- a/drivers/usb/dwc3/debugfs.c +++ b/drivers/usb/dwc3/debugfs.c @@ -296,14 +296,14 @@ static void dwc3_host_lsp(struct seq_file *s) =20 reg =3D DWC3_GDBGLSPMUX_HOSTSELECT(sel); =20 - dwc3_writel(dwc->regs, DWC3_GDBGLSPMUX, reg); - val =3D dwc3_readl(dwc->regs, DWC3_GDBGLSP); + dwc3_writel(dwc, DWC3_GDBGLSPMUX, reg); + val =3D dwc3_readl(dwc, DWC3_GDBGLSP); seq_printf(s, "GDBGLSP[%d] =3D 0x%08x\n", sel, val); =20 if (dbc_enabled && sel < 256) { reg |=3D DWC3_GDBGLSPMUX_ENDBC; - dwc3_writel(dwc->regs, DWC3_GDBGLSPMUX, reg); - val =3D dwc3_readl(dwc->regs, DWC3_GDBGLSP); + dwc3_writel(dwc, DWC3_GDBGLSPMUX, reg); + val =3D dwc3_readl(dwc, DWC3_GDBGLSP); seq_printf(s, "GDBGLSP_DBC[%d] =3D 0x%08x\n", sel, val); } } @@ -316,8 +316,8 @@ static void dwc3_gadget_lsp(struct seq_file *s) =20 for (i =3D 0; i < 16; i++) { reg =3D DWC3_GDBGLSPMUX_DEVSELECT(i); - dwc3_writel(dwc->regs, DWC3_GDBGLSPMUX, reg); - reg =3D dwc3_readl(dwc->regs, DWC3_GDBGLSP); + dwc3_writel(dwc, DWC3_GDBGLSPMUX, reg); + reg =3D dwc3_readl(dwc, DWC3_GDBGLSP); seq_printf(s, "GDBGLSP[%d] =3D 0x%08x\n", i, reg); } } @@ -335,7 +335,7 @@ static int dwc3_lsp_show(struct seq_file *s, void *unus= ed) return ret; =20 spin_lock_irqsave(&dwc->lock, flags); - reg =3D dwc3_readl(dwc->regs, DWC3_GSTS); + reg =3D dwc3_readl(dwc, DWC3_GSTS); current_mode =3D DWC3_GSTS_CURMOD(reg); =20 switch (current_mode) { @@ -406,7 +406,7 @@ static int dwc3_mode_show(struct seq_file *s, void *unu= sed) return ret; =20 spin_lock_irqsave(&dwc->lock, flags); - reg =3D dwc3_readl(dwc->regs, DWC3_GCTL); + reg =3D dwc3_readl(dwc, DWC3_GCTL); spin_unlock_irqrestore(&dwc->lock, flags); =20 mode =3D DWC3_GCTL_PRTCAP(reg); @@ -478,7 +478,7 @@ static int dwc3_testmode_show(struct seq_file *s, void = *unused) return ret; =20 spin_lock_irqsave(&dwc->lock, flags); - reg =3D dwc3_readl(dwc->regs, DWC3_DCTL); + reg =3D dwc3_readl(dwc, DWC3_DCTL); reg &=3D DWC3_DCTL_TSTCTRL_MASK; reg >>=3D 1; spin_unlock_irqrestore(&dwc->lock, flags); @@ -577,7 +577,7 @@ static int dwc3_link_state_show(struct seq_file *s, voi= d *unused) return ret; =20 spin_lock_irqsave(&dwc->lock, flags); - reg =3D dwc3_readl(dwc->regs, DWC3_GSTS); + reg =3D dwc3_readl(dwc, DWC3_GSTS); if (DWC3_GSTS_CURMOD(reg) !=3D DWC3_GSTS_CURMOD_DEVICE) { seq_puts(s, "Not available\n"); spin_unlock_irqrestore(&dwc->lock, flags); @@ -585,7 +585,7 @@ static int dwc3_link_state_show(struct seq_file *s, voi= d *unused) return 0; } =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DSTS); + reg =3D dwc3_readl(dwc, DWC3_DSTS); state =3D DWC3_DSTS_USBLNKST(reg); speed =3D reg & DWC3_DSTS_CONNECTSPD; =20 @@ -639,14 +639,14 @@ static ssize_t dwc3_link_state_write(struct file *fil= e, return ret; =20 spin_lock_irqsave(&dwc->lock, flags); - reg =3D dwc3_readl(dwc->regs, DWC3_GSTS); + reg =3D dwc3_readl(dwc, DWC3_GSTS); if (DWC3_GSTS_CURMOD(reg) !=3D DWC3_GSTS_CURMOD_DEVICE) { spin_unlock_irqrestore(&dwc->lock, flags); pm_runtime_put_sync(dwc->dev); return -EINVAL; } =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DSTS); + reg =3D dwc3_readl(dwc, DWC3_DSTS); speed =3D reg & DWC3_DSTS_CONNECTSPD; =20 if (speed < DWC3_DSTS_SUPERSPEED && @@ -942,10 +942,10 @@ static int dwc3_ep_info_register_show(struct seq_file= *s, void *unused) =20 spin_lock_irqsave(&dwc->lock, flags); reg =3D DWC3_GDBGLSPMUX_EPSELECT(dep->number); - dwc3_writel(dwc->regs, DWC3_GDBGLSPMUX, reg); + dwc3_writel(dwc, DWC3_GDBGLSPMUX, reg); =20 - lower_32_bits =3D dwc3_readl(dwc->regs, DWC3_GDBGEPINFO0); - upper_32_bits =3D dwc3_readl(dwc->regs, DWC3_GDBGEPINFO1); + lower_32_bits =3D dwc3_readl(dwc, DWC3_GDBGEPINFO0); + upper_32_bits =3D dwc3_readl(dwc, DWC3_GDBGEPINFO1); =20 ep_info =3D ((u64)upper_32_bits << 32) | lower_32_bits; seq_printf(s, "0x%016llx\n", ep_info); diff --git a/drivers/usb/dwc3/drd.c b/drivers/usb/dwc3/drd.c index 589bbeb27454..9558862d63d8 100644 --- a/drivers/usb/dwc3/drd.c +++ b/drivers/usb/dwc3/drd.c @@ -18,25 +18,25 @@ =20 static void dwc3_otg_disable_events(struct dwc3 *dwc, u32 disable_mask) { - u32 reg =3D dwc3_readl(dwc->regs, DWC3_OEVTEN); + u32 reg =3D dwc3_readl(dwc, DWC3_OEVTEN); =20 reg &=3D ~(disable_mask); - dwc3_writel(dwc->regs, DWC3_OEVTEN, reg); + dwc3_writel(dwc, DWC3_OEVTEN, reg); } =20 static void dwc3_otg_enable_events(struct dwc3 *dwc, u32 enable_mask) { - u32 reg =3D dwc3_readl(dwc->regs, DWC3_OEVTEN); + u32 reg =3D dwc3_readl(dwc, DWC3_OEVTEN); =20 reg |=3D (enable_mask); - dwc3_writel(dwc->regs, DWC3_OEVTEN, reg); + dwc3_writel(dwc, DWC3_OEVTEN, reg); } =20 static void dwc3_otg_clear_events(struct dwc3 *dwc) { - u32 reg =3D dwc3_readl(dwc->regs, DWC3_OEVT); + u32 reg =3D dwc3_readl(dwc, DWC3_OEVT); =20 - dwc3_writel(dwc->regs, DWC3_OEVTEN, reg); + dwc3_writel(dwc, DWC3_OEVTEN, reg); } =20 #define DWC3_OTG_ALL_EVENTS (DWC3_OEVTEN_XHCIRUNSTPSETEN | \ @@ -72,18 +72,18 @@ static irqreturn_t dwc3_otg_irq(int irq, void *_dwc) struct dwc3 *dwc =3D _dwc; irqreturn_t ret =3D IRQ_NONE; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_OEVT); + reg =3D dwc3_readl(dwc, DWC3_OEVT); if (reg) { /* ignore non OTG events, we can't disable them in OEVTEN */ if (!(reg & DWC3_OTG_ALL_EVENTS)) { - dwc3_writel(dwc->regs, DWC3_OEVT, reg); + dwc3_writel(dwc, DWC3_OEVT, reg); return IRQ_NONE; } =20 if (dwc->current_otg_role =3D=3D DWC3_OTG_ROLE_HOST && !(reg & DWC3_OEVT_DEVICEMODE)) dwc->otg_restart_host =3D true; - dwc3_writel(dwc->regs, DWC3_OEVT, reg); + dwc3_writel(dwc, DWC3_OEVT, reg); ret =3D IRQ_WAKE_THREAD; } =20 @@ -100,23 +100,23 @@ static void dwc3_otgregs_init(struct dwc3 *dwc) * the signal outputs sent to the PHY, the OTG FSM logic of the * core and also the resets to the VBUS filters inside the core. */ - reg =3D dwc3_readl(dwc->regs, DWC3_OCFG); + reg =3D dwc3_readl(dwc, DWC3_OCFG); reg |=3D DWC3_OCFG_SFTRSTMASK; - dwc3_writel(dwc->regs, DWC3_OCFG, reg); + dwc3_writel(dwc, DWC3_OCFG, reg); =20 /* Disable hibernation for simplicity */ - reg =3D dwc3_readl(dwc->regs, DWC3_GCTL); + reg =3D dwc3_readl(dwc, DWC3_GCTL); reg &=3D ~DWC3_GCTL_GBLHIBERNATIONEN; - dwc3_writel(dwc->regs, DWC3_GCTL, reg); + dwc3_writel(dwc, DWC3_GCTL, reg); =20 /* * Initialize OTG registers as per * Figure 11-4 OTG Driver Overall Programming Flow */ /* OCFG.SRPCap =3D 0, OCFG.HNPCap =3D 0 */ - reg =3D dwc3_readl(dwc->regs, DWC3_OCFG); + reg =3D dwc3_readl(dwc, DWC3_OCFG); reg &=3D ~(DWC3_OCFG_SRPCAP | DWC3_OCFG_HNPCAP); - dwc3_writel(dwc->regs, DWC3_OCFG, reg); + dwc3_writel(dwc, DWC3_OCFG, reg); /* OEVT =3D FFFF */ dwc3_otg_clear_events(dwc); /* OEVTEN =3D 0 */ @@ -127,11 +127,11 @@ static void dwc3_otgregs_init(struct dwc3 *dwc) * OCTL.PeriMode =3D 1, OCTL.DevSetHNPEn =3D 0, OCTL.HstSetHNPEn =3D 0, * OCTL.HNPReq =3D 0 */ - reg =3D dwc3_readl(dwc->regs, DWC3_OCTL); + reg =3D dwc3_readl(dwc, DWC3_OCTL); reg |=3D DWC3_OCTL_PERIMODE; reg &=3D ~(DWC3_OCTL_DEVSETHNPEN | DWC3_OCTL_HSTSETHNPEN | DWC3_OCTL_HNPREQ); - dwc3_writel(dwc->regs, DWC3_OCTL, reg); + dwc3_writel(dwc, DWC3_OCTL, reg); } =20 static int dwc3_otg_get_irq(struct dwc3 *dwc) @@ -175,9 +175,9 @@ void dwc3_otg_init(struct dwc3 *dwc) /* GCTL.PrtCapDir=3D2'b11 */ dwc3_set_prtcap(dwc, DWC3_GCTL_PRTCAP_OTG, true); /* GUSB2PHYCFG0.SusPHY=3D0 */ - reg =3D dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); + reg =3D dwc3_readl(dwc, DWC3_GUSB2PHYCFG(0)); reg &=3D ~DWC3_GUSB2PHYCFG_SUSPHY; - dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); + dwc3_writel(dwc, DWC3_GUSB2PHYCFG(0), reg); =20 /* Initialize OTG registers */ dwc3_otgregs_init(dwc); @@ -203,17 +203,17 @@ void dwc3_otg_host_init(struct dwc3 *dwc) * OCTL.PeriMode=3D0, OCTL.TermSelDLPulse =3D 0, * OCTL.DevSetHNPEn =3D 0, OCTL.HstSetHNPEn =3D 0 */ - reg =3D dwc3_readl(dwc->regs, DWC3_OCTL); + reg =3D dwc3_readl(dwc, DWC3_OCTL); reg &=3D ~(DWC3_OCTL_PERIMODE | DWC3_OCTL_TERMSELIDPULSE | DWC3_OCTL_DEVSETHNPEN | DWC3_OCTL_HSTSETHNPEN); - dwc3_writel(dwc->regs, DWC3_OCTL, reg); + dwc3_writel(dwc, DWC3_OCTL, reg); =20 /* * OCFG.DisPrtPwrCutoff =3D 0/1 */ - reg =3D dwc3_readl(dwc->regs, DWC3_OCFG); + reg =3D dwc3_readl(dwc, DWC3_OCFG); reg &=3D ~DWC3_OCFG_DISPWRCUTTOFF; - dwc3_writel(dwc->regs, DWC3_OCFG, reg); + dwc3_writel(dwc, DWC3_OCFG, reg); =20 /* * OCFG.SRPCap =3D 1, OCFG.HNPCap =3D GHWPARAMS6.HNP_CAP @@ -229,15 +229,15 @@ void dwc3_otg_host_init(struct dwc3 *dwc) =20 /* GUSB2PHYCFG.ULPIAutoRes =3D 1/0, GUSB2PHYCFG.SusPHY =3D 1 */ if (!dwc->dis_u2_susphy_quirk) { - reg =3D dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); + reg =3D dwc3_readl(dwc, DWC3_GUSB2PHYCFG(0)); reg |=3D DWC3_GUSB2PHYCFG_SUSPHY; - dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); + dwc3_writel(dwc, DWC3_GUSB2PHYCFG(0), reg); } =20 /* Set Port Power to enable VBUS: OCTL.PrtPwrCtl =3D 1 */ - reg =3D dwc3_readl(dwc->regs, DWC3_OCTL); + reg =3D dwc3_readl(dwc, DWC3_OCTL); reg |=3D DWC3_OCTL_PRTPWRCTL; - dwc3_writel(dwc->regs, DWC3_OCTL, reg); + dwc3_writel(dwc, DWC3_OCTL, reg); } =20 /* should be called after Host controller driver is stopped */ @@ -258,9 +258,9 @@ static void dwc3_otg_host_exit(struct dwc3 *dwc) */ =20 /* OCTL.HstSetHNPEn =3D 0, OCTL.PrtPwrCtl=3D0 */ - reg =3D dwc3_readl(dwc->regs, DWC3_OCTL); + reg =3D dwc3_readl(dwc, DWC3_OCTL); reg &=3D ~(DWC3_OCTL_HSTSETHNPEN | DWC3_OCTL_PRTPWRCTL); - dwc3_writel(dwc->regs, DWC3_OCTL, reg); + dwc3_writel(dwc, DWC3_OCTL, reg); } =20 /* should be called before the gadget controller driver is started */ @@ -274,27 +274,27 @@ static void dwc3_otg_device_init(struct dwc3 *dwc) * OCFG.HNPCap =3D GHWPARAMS6.HNP_CAP, OCFG.SRPCap =3D 1 * but we keep them 0 for simple dual-role operation. */ - reg =3D dwc3_readl(dwc->regs, DWC3_OCFG); + reg =3D dwc3_readl(dwc, DWC3_OCFG); /* OCFG.OTGSftRstMsk =3D 0/1 */ reg |=3D DWC3_OCFG_SFTRSTMASK; - dwc3_writel(dwc->regs, DWC3_OCFG, reg); + dwc3_writel(dwc, DWC3_OCFG, reg); /* * OCTL.PeriMode =3D 1 * OCTL.TermSelDLPulse =3D 0/1, OCTL.HNPReq =3D 0 * OCTL.DevSetHNPEn =3D 0, OCTL.HstSetHNPEn =3D 0 */ - reg =3D dwc3_readl(dwc->regs, DWC3_OCTL); + reg =3D dwc3_readl(dwc, DWC3_OCTL); reg |=3D DWC3_OCTL_PERIMODE; reg &=3D ~(DWC3_OCTL_TERMSELIDPULSE | DWC3_OCTL_HNPREQ | DWC3_OCTL_DEVSETHNPEN | DWC3_OCTL_HSTSETHNPEN); - dwc3_writel(dwc->regs, DWC3_OCTL, reg); + dwc3_writel(dwc, DWC3_OCTL, reg); /* OEVTEN.OTGBDevSesVldDetEvntEn =3D 1 */ dwc3_otg_enable_events(dwc, DWC3_OEVTEN_BDEVSESSVLDDETEN); /* GUSB2PHYCFG.ULPIAutoRes =3D 0, GUSB2PHYCFG0.SusPHY =3D 1 */ if (!dwc->dis_u2_susphy_quirk) { - reg =3D dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); + reg =3D dwc3_readl(dwc, DWC3_GUSB2PHYCFG(0)); reg |=3D DWC3_GUSB2PHYCFG_SUSPHY; - dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); + dwc3_writel(dwc, DWC3_GUSB2PHYCFG(0), reg); } /* GCTL.GblHibernationEn =3D 0. Already 0. */ } @@ -319,10 +319,10 @@ static void dwc3_otg_device_exit(struct dwc3 *dwc) DWC3_OEVTEN_BDEVBHOSTENDEN); =20 /* OCTL.DevSetHNPEn =3D 0, OCTL.HNPReq =3D 0, OCTL.PeriMode=3D1 */ - reg =3D dwc3_readl(dwc->regs, DWC3_OCTL); + reg =3D dwc3_readl(dwc, DWC3_OCTL); reg &=3D ~(DWC3_OCTL_DEVSETHNPEN | DWC3_OCTL_HNPREQ); reg |=3D DWC3_OCTL_PERIMODE; - dwc3_writel(dwc->regs, DWC3_OCTL, reg); + dwc3_writel(dwc, DWC3_OCTL, reg); } =20 void dwc3_otg_update(struct dwc3 *dwc, bool ignore_idstatus) @@ -341,7 +341,7 @@ void dwc3_otg_update(struct dwc3 *dwc, bool ignore_idst= atus) return; =20 if (!ignore_idstatus) { - reg =3D dwc3_readl(dwc->regs, DWC3_OSTS); + reg =3D dwc3_readl(dwc, DWC3_OSTS); id =3D !!(reg & DWC3_OSTS_CONIDSTS); =20 dwc->desired_otg_role =3D id ? DWC3_OTG_ROLE_DEVICE : diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c index e0bad5708664..a8ff8db610d3 100644 --- a/drivers/usb/dwc3/ep0.c +++ b/drivers/usb/dwc3/ep0.c @@ -361,7 +361,7 @@ static int dwc3_ep0_handle_status(struct dwc3 *dwc, =20 if ((dwc->speed =3D=3D DWC3_DSTS_SUPERSPEED) || (dwc->speed =3D=3D DWC3_DSTS_SUPERSPEED_PLUS)) { - reg =3D dwc3_readl(dwc->regs, DWC3_DCTL); + reg =3D dwc3_readl(dwc, DWC3_DCTL); if (reg & DWC3_DCTL_INITU1ENA) usb_status |=3D 1 << USB_DEV_STAT_U1_ENABLED; if (reg & DWC3_DCTL_INITU2ENA) @@ -417,12 +417,12 @@ static int dwc3_ep0_handle_u1(struct dwc3 *dwc, enum = usb_device_state state, if (set && dwc->dis_u1_entry_quirk) return -EINVAL; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DCTL); + reg =3D dwc3_readl(dwc, DWC3_DCTL); if (set) reg |=3D DWC3_DCTL_INITU1ENA; else reg &=3D ~DWC3_DCTL_INITU1ENA; - dwc3_writel(dwc->regs, DWC3_DCTL, reg); + dwc3_writel(dwc, DWC3_DCTL, reg); =20 return 0; } @@ -441,12 +441,12 @@ static int dwc3_ep0_handle_u2(struct dwc3 *dwc, enum = usb_device_state state, if (set && dwc->dis_u2_entry_quirk) return -EINVAL; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DCTL); + reg =3D dwc3_readl(dwc, DWC3_DCTL); if (set) reg |=3D DWC3_DCTL_INITU2ENA; else reg &=3D ~DWC3_DCTL_INITU2ENA; - dwc3_writel(dwc->regs, DWC3_DCTL, reg); + dwc3_writel(dwc, DWC3_DCTL, reg); =20 return 0; } @@ -612,10 +612,10 @@ static int dwc3_ep0_set_address(struct dwc3 *dwc, str= uct usb_ctrlrequest *ctrl) return -EINVAL; } =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DCFG); + reg =3D dwc3_readl(dwc, DWC3_DCFG); reg &=3D ~(DWC3_DCFG_DEVADDR_MASK); reg |=3D DWC3_DCFG_DEVADDR(addr); - dwc3_writel(dwc->regs, DWC3_DCFG, reg); + dwc3_writel(dwc, DWC3_DCFG, reg); =20 if (addr) usb_gadget_set_state(dwc->gadget, USB_STATE_ADDRESS); @@ -672,12 +672,12 @@ static int dwc3_ep0_set_config(struct dwc3 *dwc, stru= ct usb_ctrlrequest *ctrl) * Enable transition to U1/U2 state when * nothing is pending from application. */ - reg =3D dwc3_readl(dwc->regs, DWC3_DCTL); + reg =3D dwc3_readl(dwc, DWC3_DCTL); if (!dwc->dis_u1_entry_quirk) reg |=3D DWC3_DCTL_ACCEPTU1ENA; if (!dwc->dis_u2_entry_quirk) reg |=3D DWC3_DCTL_ACCEPTU2ENA; - dwc3_writel(dwc->regs, DWC3_DCTL, reg); + dwc3_writel(dwc, DWC3_DCTL, reg); } break; =20 @@ -717,7 +717,7 @@ static void dwc3_ep0_set_sel_cmpl(struct usb_ep *ep, st= ruct usb_request *req) dwc->u2sel =3D le16_to_cpu(timing.u2sel); dwc->u2pel =3D le16_to_cpu(timing.u2pel); =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DCTL); + reg =3D dwc3_readl(dwc, DWC3_DCTL); if (reg & DWC3_DCTL_INITU2ENA) param =3D dwc->u2pel; if (reg & DWC3_DCTL_INITU1ENA) diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index ce087cbc4a53..9355c952c140 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -42,7 +42,7 @@ int dwc3_gadget_set_test_mode(struct dwc3 *dwc, int mode) { u32 reg; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DCTL); + reg =3D dwc3_readl(dwc, DWC3_DCTL); reg &=3D ~DWC3_DCTL_TSTCTRL_MASK; =20 switch (mode) { @@ -73,7 +73,7 @@ int dwc3_gadget_get_link_state(struct dwc3 *dwc) { u32 reg; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DSTS); + reg =3D dwc3_readl(dwc, DWC3_DSTS); =20 return DWC3_DSTS_USBLNKST(reg); } @@ -97,7 +97,7 @@ int dwc3_gadget_set_link_state(struct dwc3 *dwc, enum dwc= 3_link_state state) */ if (!DWC3_VER_IS_PRIOR(DWC3, 194A)) { while (--retries) { - reg =3D dwc3_readl(dwc->regs, DWC3_DSTS); + reg =3D dwc3_readl(dwc, DWC3_DSTS); if (reg & DWC3_DSTS_DCNRD) udelay(5); else @@ -108,15 +108,15 @@ int dwc3_gadget_set_link_state(struct dwc3 *dwc, enum= dwc3_link_state state) return -ETIMEDOUT; } =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DCTL); + reg =3D dwc3_readl(dwc, DWC3_DCTL); reg &=3D ~DWC3_DCTL_ULSTCHNGREQ_MASK; =20 /* set no action before sending new link state change */ - dwc3_writel(dwc->regs, DWC3_DCTL, reg); + dwc3_writel(dwc, DWC3_DCTL, reg); =20 /* set requested state */ reg |=3D DWC3_DCTL_ULSTCHNGREQ(state); - dwc3_writel(dwc->regs, DWC3_DCTL, reg); + dwc3_writel(dwc, DWC3_DCTL, reg); =20 /* * The following code is racy when called from dwc3_gadget_wakeup, @@ -128,7 +128,7 @@ int dwc3_gadget_set_link_state(struct dwc3 *dwc, enum d= wc3_link_state state) /* wait for a change in DSTS */ retries =3D 10000; while (--retries) { - reg =3D dwc3_readl(dwc->regs, DWC3_DSTS); + reg =3D dwc3_readl(dwc, DWC3_DSTS); =20 if (DWC3_DSTS_USBLNKST(reg) =3D=3D state) return 0; @@ -260,11 +260,11 @@ int dwc3_send_gadget_generic_command(struct dwc3 *dwc= , unsigned int cmd, int ret =3D 0; u32 reg; =20 - dwc3_writel(dwc->regs, DWC3_DGCMDPAR, param); - dwc3_writel(dwc->regs, DWC3_DGCMD, cmd | DWC3_DGCMD_CMDACT); + dwc3_writel(dwc, DWC3_DGCMDPAR, param); + dwc3_writel(dwc, DWC3_DGCMD, cmd | DWC3_DGCMD_CMDACT); =20 do { - reg =3D dwc3_readl(dwc->regs, DWC3_DGCMD); + reg =3D dwc3_readl(dwc, DWC3_DGCMD); if (!(reg & DWC3_DGCMD_CMDACT)) { status =3D DWC3_DGCMD_STATUS(reg); if (status) @@ -334,7 +334,7 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsign= ed int cmd, */ if (dwc->gadget->speed <=3D USB_SPEED_HIGH || DWC3_DEPCMD_CMD(cmd) =3D=3D DWC3_DEPCMD_ENDTRANSFER) { - reg =3D dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); + reg =3D dwc3_readl(dwc, DWC3_GUSB2PHYCFG(0)); if (unlikely(reg & DWC3_GUSB2PHYCFG_SUSPHY)) { saved_config |=3D DWC3_GUSB2PHYCFG_SUSPHY; reg &=3D ~DWC3_GUSB2PHYCFG_SUSPHY; @@ -346,7 +346,7 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsign= ed int cmd, } =20 if (saved_config) - dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); + dwc3_writel(dwc, DWC3_GUSB2PHYCFG(0), reg); } =20 /* @@ -356,9 +356,9 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsign= ed int cmd, * improve performance. */ if (DWC3_DEPCMD_CMD(cmd) !=3D DWC3_DEPCMD_UPDATETRANSFER) { - dwc3_writel(dwc->regs, DWC3_DEPCMDPAR0(epnum), params->param0); - dwc3_writel(dwc->regs, DWC3_DEPCMDPAR1(epnum), params->param1); - dwc3_writel(dwc->regs, DWC3_DEPCMDPAR2(epnum), params->param2); + dwc3_writel(dwc, DWC3_DEPCMDPAR0(epnum), params->param0); + dwc3_writel(dwc, DWC3_DEPCMDPAR1(epnum), params->param1); + dwc3_writel(dwc, DWC3_DEPCMDPAR2(epnum), params->param2); } =20 /* @@ -382,7 +382,7 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsign= ed int cmd, else cmd |=3D DWC3_DEPCMD_CMDACT; =20 - dwc3_writel(dwc->regs, DWC3_DEPCMD(epnum), cmd); + dwc3_writel(dwc, DWC3_DEPCMD(epnum), cmd); =20 if (!(cmd & DWC3_DEPCMD_CMDACT) || (DWC3_DEPCMD_CMD(cmd) =3D=3D DWC3_DEPCMD_ENDTRANSFER && @@ -392,7 +392,7 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsign= ed int cmd, } =20 do { - reg =3D dwc3_readl(dwc->regs, DWC3_DEPCMD(epnum)); + reg =3D dwc3_readl(dwc, DWC3_DEPCMD(epnum)); if (!(reg & DWC3_DEPCMD_CMDACT)) { cmd_status =3D DWC3_DEPCMD_STATUS(reg); =20 @@ -448,9 +448,9 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsign= ed int cmd, mdelay(1); =20 if (saved_config) { - reg =3D dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); + reg =3D dwc3_readl(dwc, DWC3_GUSB2PHYCFG(0)); reg |=3D saved_config; - dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); + dwc3_writel(dwc, DWC3_GUSB2PHYCFG(0), reg); } =20 return ret; @@ -727,7 +727,7 @@ static int dwc3_gadget_calc_ram_depth(struct dwc3 *dwc) u32 reg; =20 /* Check if TXFIFOs start at non-zero addr */ - reg =3D dwc3_readl(dwc->regs, DWC3_GTXFIFOSIZ(0)); + reg =3D dwc3_readl(dwc, DWC3_GTXFIFOSIZ(0)); fifo_0_start =3D DWC3_GTXFIFOSIZ_TXFSTADDR(reg); =20 ram_depth -=3D (fifo_0_start >> 16); @@ -755,7 +755,7 @@ void dwc3_gadget_clear_tx_fifos(struct dwc3 *dwc) =20 /* Read ep0IN related TXFIFO size */ dep =3D dwc->eps[1]; - size =3D dwc3_readl(dwc->regs, DWC3_GTXFIFOSIZ(0)); + size =3D dwc3_readl(dwc, DWC3_GTXFIFOSIZ(0)); if (DWC3_IP_IS(DWC3)) fifo_depth =3D DWC3_GTXFIFOSIZ_TXFDEP(size); else @@ -770,10 +770,10 @@ void dwc3_gadget_clear_tx_fifos(struct dwc3 *dwc) =20 /* Don't change TXFRAMNUM on usb31 version */ size =3D DWC3_IP_IS(DWC3) ? 0 : - dwc3_readl(dwc->regs, DWC3_GTXFIFOSIZ(num >> 1)) & + dwc3_readl(dwc, DWC3_GTXFIFOSIZ(num >> 1)) & DWC31_GTXFIFOSIZ_TXFRAMNUM; =20 - dwc3_writel(dwc->regs, DWC3_GTXFIFOSIZ(num >> 1), size); + dwc3_writel(dwc, DWC3_GTXFIFOSIZ(num >> 1), size); dep->flags &=3D ~DWC3_EP_TXFIFO_RESIZED; } dwc->num_ep_resized =3D 0; @@ -876,7 +876,7 @@ static int dwc3_gadget_resize_tx_fifos(struct dwc3_ep *= dep) fifo_size++; =20 /* Check if TXFIFOs start at non-zero addr */ - tmp =3D dwc3_readl(dwc->regs, DWC3_GTXFIFOSIZ(0)); + tmp =3D dwc3_readl(dwc, DWC3_GTXFIFOSIZ(0)); fifo_0_start =3D DWC3_GTXFIFOSIZ_TXFSTADDR(tmp); =20 fifo_size |=3D (fifo_0_start + (dwc->last_fifo_depth << 16)); @@ -899,7 +899,7 @@ static int dwc3_gadget_resize_tx_fifos(struct dwc3_ep *= dep) return -ENOMEM; } =20 - dwc3_writel(dwc->regs, DWC3_GTXFIFOSIZ(dep->number >> 1), fifo_size); + dwc3_writel(dwc, DWC3_GTXFIFOSIZ(dep->number >> 1), fifo_size); dep->flags |=3D DWC3_EP_TXFIFO_RESIZED; dwc->num_ep_resized++; =20 @@ -943,9 +943,9 @@ static int __dwc3_gadget_ep_enable(struct dwc3_ep *dep,= unsigned int action) dep->type =3D usb_endpoint_type(desc); dep->flags |=3D DWC3_EP_ENABLED; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DALEPENA); + reg =3D dwc3_readl(dwc, DWC3_DALEPENA); reg |=3D DWC3_DALEPENA_EP(dep->number); - dwc3_writel(dwc->regs, DWC3_DALEPENA, reg); + dwc3_writel(dwc, DWC3_DALEPENA, reg); =20 dep->trb_dequeue =3D 0; dep->trb_enqueue =3D 0; @@ -1080,9 +1080,9 @@ static int __dwc3_gadget_ep_disable(struct dwc3_ep *d= ep) if (dep->flags & DWC3_EP_STALL) __dwc3_gadget_ep_set_halt(dep, 0, false); =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DALEPENA); + reg =3D dwc3_readl(dwc, DWC3_DALEPENA); reg &=3D ~DWC3_DALEPENA_EP(dep->number); - dwc3_writel(dwc->regs, DWC3_DALEPENA, reg); + dwc3_writel(dwc, DWC3_DALEPENA, reg); =20 dwc3_remove_requests(dwc, dep, -ESHUTDOWN); =20 @@ -1743,7 +1743,7 @@ static int __dwc3_gadget_get_frame(struct dwc3 *dwc) { u32 reg; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DSTS); + reg =3D dwc3_readl(dwc, DWC3_DSTS); return DWC3_DSTS_SOFFN(reg); } =20 @@ -2351,13 +2351,13 @@ static void dwc3_gadget_enable_linksts_evts(struct = dwc3 *dwc, bool set) if (DWC3_VER_IS_PRIOR(DWC3, 250A)) return; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DEVTEN); + reg =3D dwc3_readl(dwc, DWC3_DEVTEN); if (set) reg |=3D DWC3_DEVTEN_ULSTCNGEN; else reg &=3D ~DWC3_DEVTEN_ULSTCNGEN; =20 - dwc3_writel(dwc->regs, DWC3_DEVTEN, reg); + dwc3_writel(dwc, DWC3_DEVTEN, reg); } =20 static int dwc3_gadget_get_frame(struct usb_gadget *g) @@ -2380,7 +2380,7 @@ static int __dwc3_gadget_wakeup(struct dwc3 *dwc) * * We can check that via USB Link State bits in DSTS register. */ - reg =3D dwc3_readl(dwc->regs, DWC3_DSTS); + reg =3D dwc3_readl(dwc, DWC3_DSTS); =20 link_state =3D DWC3_DSTS_USBLNKST(reg); =20 @@ -2408,9 +2408,9 @@ static int __dwc3_gadget_wakeup(struct dwc3 *dwc) /* Recent versions do this automatically */ if (DWC3_VER_IS_PRIOR(DWC3, 194A)) { /* write zeroes to Link Change Request */ - reg =3D dwc3_readl(dwc->regs, DWC3_DCTL); + reg =3D dwc3_readl(dwc, DWC3_DCTL); reg &=3D ~DWC3_DCTL_ULSTCHNGREQ_MASK; - dwc3_writel(dwc->regs, DWC3_DCTL, reg); + dwc3_writel(dwc, DWC3_DCTL, reg); } =20 /* @@ -2530,7 +2530,7 @@ static void __dwc3_gadget_set_ssp_rate(struct dwc3 *d= wc) if (ssp_rate =3D=3D USB_SSP_GEN_UNKNOWN) ssp_rate =3D dwc->max_ssp_rate; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DCFG); + reg =3D dwc3_readl(dwc, DWC3_DCFG); reg &=3D ~DWC3_DCFG_SPEED_MASK; reg &=3D ~DWC3_DCFG_NUMLANES(~0); =20 @@ -2543,7 +2543,7 @@ static void __dwc3_gadget_set_ssp_rate(struct dwc3 *d= wc) dwc->max_ssp_rate !=3D USB_SSP_GEN_2x1) reg |=3D DWC3_DCFG_NUMLANES(1); =20 - dwc3_writel(dwc->regs, DWC3_DCFG, reg); + dwc3_writel(dwc, DWC3_DCFG, reg); } =20 static void __dwc3_gadget_set_speed(struct dwc3 *dwc) @@ -2561,7 +2561,7 @@ static void __dwc3_gadget_set_speed(struct dwc3 *dwc) return; } =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DCFG); + reg =3D dwc3_readl(dwc, DWC3_DCFG); reg &=3D ~(DWC3_DCFG_SPEED_MASK); =20 /* @@ -2612,7 +2612,7 @@ static void __dwc3_gadget_set_speed(struct dwc3 *dwc) speed < USB_SPEED_SUPER_PLUS) reg &=3D ~DWC3_DCFG_NUMLANES(~0); =20 - dwc3_writel(dwc->regs, DWC3_DCFG, reg); + dwc3_writel(dwc, DWC3_DCFG, reg); } =20 static int dwc3_gadget_run_stop(struct dwc3 *dwc, int is_on) @@ -2637,7 +2637,7 @@ static int dwc3_gadget_run_stop(struct dwc3 *dwc, int= is_on) * mentioned in the dwc3 programming guide. It has been tested on an * Exynos platforms. */ - reg =3D dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); + reg =3D dwc3_readl(dwc, DWC3_GUSB2PHYCFG(0)); if (reg & DWC3_GUSB2PHYCFG_SUSPHY) { saved_config |=3D DWC3_GUSB2PHYCFG_SUSPHY; reg &=3D ~DWC3_GUSB2PHYCFG_SUSPHY; @@ -2649,9 +2649,9 @@ static int dwc3_gadget_run_stop(struct dwc3 *dwc, int= is_on) } =20 if (saved_config) - dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); + dwc3_writel(dwc, DWC3_GUSB2PHYCFG(0), reg); =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DCTL); + reg =3D dwc3_readl(dwc, DWC3_DCTL); if (is_on) { if (DWC3_VER_IS_WITHIN(DWC3, ANY, 187A)) { reg &=3D ~DWC3_DCTL_TRGTULST_MASK; @@ -2675,14 +2675,14 @@ static int dwc3_gadget_run_stop(struct dwc3 *dwc, i= nt is_on) =20 do { usleep_range(1000, 2000); - reg =3D dwc3_readl(dwc->regs, DWC3_DSTS); + reg =3D dwc3_readl(dwc, DWC3_DSTS); reg &=3D DWC3_DSTS_DEVCTRLHLT; } while (--timeout && !(!is_on ^ !reg)); =20 if (saved_config) { - reg =3D dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); + reg =3D dwc3_readl(dwc, DWC3_GUSB2PHYCFG(0)); reg |=3D saved_config; - dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); + dwc3_writel(dwc, DWC3_GUSB2PHYCFG(0), reg); } =20 if (!timeout) @@ -2858,13 +2858,13 @@ static void dwc3_gadget_enable_irq(struct dwc3 *dwc) if (!DWC3_VER_IS_PRIOR(DWC3, 230A)) reg |=3D DWC3_DEVTEN_U3L2L1SUSPEN; =20 - dwc3_writel(dwc->regs, DWC3_DEVTEN, reg); + dwc3_writel(dwc, DWC3_DEVTEN, reg); } =20 static void dwc3_gadget_disable_irq(struct dwc3 *dwc) { /* mask all interrupts */ - dwc3_writel(dwc->regs, DWC3_DEVTEN, 0x00); + dwc3_writel(dwc, DWC3_DEVTEN, 0x00); } =20 static irqreturn_t dwc3_interrupt(int irq, void *_dwc); @@ -2905,10 +2905,10 @@ static void dwc3_gadget_setup_nump(struct dwc3 *dwc) nump =3D min_t(u32, nump, 16); =20 /* update NumP */ - reg =3D dwc3_readl(dwc->regs, DWC3_DCFG); + reg =3D dwc3_readl(dwc, DWC3_DCFG); reg &=3D ~DWC3_DCFG_NUMP_MASK; reg |=3D nump << DWC3_DCFG_NUMP_SHIFT; - dwc3_writel(dwc->regs, DWC3_DCFG, reg); + dwc3_writel(dwc, DWC3_DCFG, reg); } =20 static int __dwc3_gadget_start(struct dwc3 *dwc) @@ -2922,10 +2922,10 @@ static int __dwc3_gadget_start(struct dwc3 *dwc) * the core supports IMOD, disable it. */ if (dwc->imod_interval) { - dwc3_writel(dwc->regs, DWC3_DEV_IMOD(0), dwc->imod_interval); - dwc3_writel(dwc->regs, DWC3_GEVNTCOUNT(0), DWC3_GEVNTCOUNT_EHB); + dwc3_writel(dwc, DWC3_DEV_IMOD(0), dwc->imod_interval); + dwc3_writel(dwc, DWC3_GEVNTCOUNT(0), DWC3_GEVNTCOUNT_EHB); } else if (dwc3_has_imod(dwc)) { - dwc3_writel(dwc->regs, DWC3_DEV_IMOD(0), 0); + dwc3_writel(dwc, DWC3_DEV_IMOD(0), 0); } =20 /* @@ -2935,13 +2935,13 @@ static int __dwc3_gadget_start(struct dwc3 *dwc) * This way, we maximize the chances that we'll be able to get several * bursts of data without going through any sort of endpoint throttling. */ - reg =3D dwc3_readl(dwc->regs, DWC3_GRXTHRCFG); + reg =3D dwc3_readl(dwc, DWC3_GRXTHRCFG); if (DWC3_IP_IS(DWC3)) reg &=3D ~DWC3_GRXTHRCFG_PKTCNTSEL; else reg &=3D ~DWC31_GRXTHRCFG_PKTCNTSEL; =20 - dwc3_writel(dwc->regs, DWC3_GRXTHRCFG, reg); + dwc3_writel(dwc, DWC3_GRXTHRCFG, reg); =20 dwc3_gadget_setup_nump(dwc); =20 @@ -2952,15 +2952,15 @@ static int __dwc3_gadget_start(struct dwc3 *dwc) * ACK with NumP=3D0 and PP=3D0 (for IN direction). This slightly improves * the stream performance. */ - reg =3D dwc3_readl(dwc->regs, DWC3_DCFG); + reg =3D dwc3_readl(dwc, DWC3_DCFG); reg |=3D DWC3_DCFG_IGNSTRMPP; - dwc3_writel(dwc->regs, DWC3_DCFG, reg); + dwc3_writel(dwc, DWC3_DCFG, reg); =20 /* Enable MST by default if the device is capable of MST */ if (DWC3_MST_CAPABLE(&dwc->hwparams)) { - reg =3D dwc3_readl(dwc->regs, DWC3_DCFG1); + reg =3D dwc3_readl(dwc, DWC3_DCFG1); reg &=3D ~DWC3_DCFG1_DIS_MST_ENH; - dwc3_writel(dwc->regs, DWC3_DCFG1, reg); + dwc3_writel(dwc, DWC3_DCFG1, reg); } =20 /* Start with SuperSpeed Default */ @@ -3240,7 +3240,7 @@ static int dwc3_gadget_init_in_endpoint(struct dwc3_e= p *dep) /* MDWIDTH is represented in bits, we need it in bytes */ mdwidth /=3D 8; =20 - size =3D dwc3_readl(dwc->regs, DWC3_GTXFIFOSIZ(dep->number >> 1)); + size =3D dwc3_readl(dwc, DWC3_GTXFIFOSIZ(dep->number >> 1)); if (DWC3_IP_IS(DWC3)) size =3D DWC3_GTXFIFOSIZ_TXFDEP(size); else @@ -3289,7 +3289,7 @@ static int dwc3_gadget_init_out_endpoint(struct dwc3_= ep *dep) mdwidth /=3D 8; =20 /* All OUT endpoints share a single RxFIFO space */ - size =3D dwc3_readl(dwc->regs, DWC3_GRXFIFOSIZ(0)); + size =3D dwc3_readl(dwc, DWC3_GRXFIFOSIZ(0)); if (DWC3_IP_IS(DWC3)) size =3D DWC3_GRXFIFOSIZ_RXFDEP(size); else @@ -3742,9 +3742,9 @@ static bool dwc3_gadget_endpoint_trbs_complete(struct= dwc3_ep *dep, return no_started_trb; } =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DCTL); + reg =3D dwc3_readl(dwc, DWC3_DCTL); reg |=3D dwc->u1u2; - dwc3_writel(dwc->regs, DWC3_DCTL, reg); + dwc3_writel(dwc, DWC3_DCTL, reg); =20 dwc->u1u2 =3D 0; } @@ -4074,7 +4074,7 @@ static void dwc3_gadget_disconnect_interrupt(struct d= wc3 *dwc) =20 dwc3_gadget_set_link_state(dwc, DWC3_LINK_STATE_RX_DET); =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DCTL); + reg =3D dwc3_readl(dwc, DWC3_DCTL); reg &=3D ~DWC3_DCTL_INITU1ENA; reg &=3D ~DWC3_DCTL_INITU2ENA; dwc3_gadget_dctl_write_safe(dwc, reg); @@ -4163,7 +4163,7 @@ static void dwc3_gadget_reset_interrupt(struct dwc3 *= dwc) dwc3_stop_active_transfers(dwc); dwc->connected =3D true; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DCTL); + reg =3D dwc3_readl(dwc, DWC3_DCTL); reg &=3D ~DWC3_DCTL_TSTCTRL_MASK; dwc3_gadget_dctl_write_safe(dwc, reg); dwc->test_mode =3D false; @@ -4172,9 +4172,9 @@ static void dwc3_gadget_reset_interrupt(struct dwc3 *= dwc) dwc3_clear_stall_all_ep(dwc); =20 /* Reset device address to zero */ - reg =3D dwc3_readl(dwc->regs, DWC3_DCFG); + reg =3D dwc3_readl(dwc, DWC3_DCFG); reg &=3D ~(DWC3_DCFG_DEVADDR_MASK); - dwc3_writel(dwc->regs, DWC3_DCFG, reg); + dwc3_writel(dwc, DWC3_DCFG, reg); } =20 static void dwc3_gadget_conndone_interrupt(struct dwc3 *dwc) @@ -4188,7 +4188,7 @@ static void dwc3_gadget_conndone_interrupt(struct dwc= 3 *dwc) if (!dwc->softconnect) return; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DSTS); + reg =3D dwc3_readl(dwc, DWC3_DSTS); speed =3D reg & DWC3_DSTS_CONNECTSPD; dwc->speed =3D speed; =20 @@ -4263,11 +4263,11 @@ static void dwc3_gadget_conndone_interrupt(struct d= wc3 *dwc) !dwc->usb2_gadget_lpm_disable && (speed !=3D DWC3_DSTS_SUPERSPEED) && (speed !=3D DWC3_DSTS_SUPERSPEED_PLUS)) { - reg =3D dwc3_readl(dwc->regs, DWC3_DCFG); + reg =3D dwc3_readl(dwc, DWC3_DCFG); reg |=3D DWC3_DCFG_LPM_CAP; - dwc3_writel(dwc->regs, DWC3_DCFG, reg); + dwc3_writel(dwc, DWC3_DCFG, reg); =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DCTL); + reg =3D dwc3_readl(dwc, DWC3_DCTL); reg &=3D ~(DWC3_DCTL_HIRD_THRES_MASK | DWC3_DCTL_L1_HIBER_EN); =20 reg |=3D DWC3_DCTL_HIRD_THRES(dwc->hird_threshold | @@ -4290,12 +4290,12 @@ static void dwc3_gadget_conndone_interrupt(struct d= wc3 *dwc) dwc3_gadget_dctl_write_safe(dwc, reg); } else { if (dwc->usb2_gadget_lpm_disable) { - reg =3D dwc3_readl(dwc->regs, DWC3_DCFG); + reg =3D dwc3_readl(dwc, DWC3_DCFG); reg &=3D ~DWC3_DCFG_LPM_CAP; - dwc3_writel(dwc->regs, DWC3_DCFG, reg); + dwc3_writel(dwc, DWC3_DCFG, reg); } =20 - reg =3D dwc3_readl(dwc->regs, DWC3_DCTL); + reg =3D dwc3_readl(dwc, DWC3_DCTL); reg &=3D ~DWC3_DCTL_HIRD_THRES_MASK; dwc3_gadget_dctl_write_safe(dwc, reg); } @@ -4401,7 +4401,7 @@ static void dwc3_gadget_linksts_change_interrupt(stru= ct dwc3 *dwc, switch (dwc->link_state) { case DWC3_LINK_STATE_U1: case DWC3_LINK_STATE_U2: - reg =3D dwc3_readl(dwc->regs, DWC3_DCTL); + reg =3D dwc3_readl(dwc, DWC3_DCTL); u1u2 =3D reg & (DWC3_DCTL_INITU2ENA | DWC3_DCTL_ACCEPTU2ENA | DWC3_DCTL_INITU1ENA @@ -4558,7 +4558,7 @@ static irqreturn_t dwc3_process_event_buf(struct dwc3= _event_buffer *evt) ret =3D IRQ_HANDLED; =20 /* Unmask interrupt */ - dwc3_writel(dwc->regs, DWC3_GEVNTSIZ(0), + dwc3_writel(dwc, DWC3_GEVNTSIZ(0), DWC3_GEVNTSIZ_SIZE(evt->length)); =20 evt->flags &=3D ~DWC3_EVENT_PENDING; @@ -4569,8 +4569,8 @@ static irqreturn_t dwc3_process_event_buf(struct dwc3= _event_buffer *evt) wmb(); =20 if (dwc->imod_interval) { - dwc3_writel(dwc->regs, DWC3_GEVNTCOUNT(0), DWC3_GEVNTCOUNT_EHB); - dwc3_writel(dwc->regs, DWC3_DEV_IMOD(0), dwc->imod_interval); + dwc3_writel(dwc, DWC3_GEVNTCOUNT(0), DWC3_GEVNTCOUNT_EHB); + dwc3_writel(dwc, DWC3_DEV_IMOD(0), dwc->imod_interval); } =20 return ret; @@ -4619,7 +4619,7 @@ static irqreturn_t dwc3_check_event_buf(struct dwc3_e= vent_buffer *evt) if (evt->flags & DWC3_EVENT_PENDING) return IRQ_HANDLED; =20 - count =3D dwc3_readl(dwc->regs, DWC3_GEVNTCOUNT(0)); + count =3D dwc3_readl(dwc, DWC3_GEVNTCOUNT(0)); count &=3D DWC3_GEVNTCOUNT_MASK; if (!count) return IRQ_NONE; @@ -4634,7 +4634,7 @@ static irqreturn_t dwc3_check_event_buf(struct dwc3_e= vent_buffer *evt) evt->flags |=3D DWC3_EVENT_PENDING; =20 /* Mask interrupt */ - dwc3_writel(dwc->regs, DWC3_GEVNTSIZ(0), + dwc3_writel(dwc, DWC3_GEVNTSIZ(0), DWC3_GEVNTSIZ_INTMASK | DWC3_GEVNTSIZ_SIZE(evt->length)); =20 amount =3D min(count, evt->length - evt->lpos); @@ -4643,7 +4643,7 @@ static irqreturn_t dwc3_check_event_buf(struct dwc3_e= vent_buffer *evt) if (amount < count) memcpy(evt->cache, evt->buf, count - amount); =20 - dwc3_writel(dwc->regs, DWC3_GEVNTCOUNT(0), count); + dwc3_writel(dwc, DWC3_GEVNTCOUNT(0), count); =20 return IRQ_WAKE_THREAD; } diff --git a/drivers/usb/dwc3/gadget.h b/drivers/usb/dwc3/gadget.h index c3aa9638b7a5..45f113b3c146 100644 --- a/drivers/usb/dwc3/gadget.h +++ b/drivers/usb/dwc3/gadget.h @@ -132,7 +132,7 @@ static inline void dwc3_gadget_ep_get_transfer_index(st= ruct dwc3_ep *dep) { u32 res_id; =20 - res_id =3D dwc3_readl(dep->dwc->regs, DWC3_DEPCMD(dep->number)); + res_id =3D dwc3_readl(dep->dwc, DWC3_DEPCMD(dep->number)); dep->resource_index =3D DWC3_DEPCMD_GET_RSC_IDX(res_id); } =20 @@ -147,7 +147,7 @@ static inline void dwc3_gadget_ep_get_transfer_index(st= ruct dwc3_ep *dep) static inline void dwc3_gadget_dctl_write_safe(struct dwc3 *dwc, u32 value) { value &=3D ~DWC3_DCTL_ULSTCHNGREQ_MASK; - dwc3_writel(dwc->regs, DWC3_DCTL, value); + dwc3_writel(dwc, DWC3_DCTL, value); } =20 #endif /* __DRIVERS_USB_DWC3_GADGET_H */ diff --git a/drivers/usb/dwc3/io.h b/drivers/usb/dwc3/io.h index 1e96ea339d48..7dd0c1e0cf74 100644 --- a/drivers/usb/dwc3/io.h +++ b/drivers/usb/dwc3/io.h @@ -16,9 +16,10 @@ #include "debug.h" #include "core.h" =20 -static inline u32 dwc3_readl(void __iomem *base, u32 offset) +static inline u32 dwc3_readl(struct dwc3 *dwc, u32 offset) { u32 value; + void __iomem *base =3D dwc->regs; =20 /* * We requested the mem region starting from the Globals address @@ -37,8 +38,10 @@ static inline u32 dwc3_readl(void __iomem *base, u32 off= set) return value; } =20 -static inline void dwc3_writel(void __iomem *base, u32 offset, u32 value) +static inline void dwc3_writel(struct dwc3 *dwc, u32 offset, u32 value) { + void __iomem *base =3D dwc->regs; + /* * We requested the mem region starting from the Globals address * space, see dwc3_probe in core.c. diff --git a/drivers/usb/dwc3/ulpi.c b/drivers/usb/dwc3/ulpi.c index f23f4c9a557e..57daad15f502 100644 --- a/drivers/usb/dwc3/ulpi.c +++ b/drivers/usb/dwc3/ulpi.c @@ -33,13 +33,13 @@ static int dwc3_ulpi_busyloop(struct dwc3 *dwc, u8 addr= , bool read) if (read) ns +=3D DWC3_ULPI_BASE_DELAY; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); + reg =3D dwc3_readl(dwc, DWC3_GUSB2PHYCFG(0)); if (reg & DWC3_GUSB2PHYCFG_SUSPHY) usleep_range(1000, 1200); =20 while (count--) { ndelay(ns); - reg =3D dwc3_readl(dwc->regs, DWC3_GUSB2PHYACC(0)); + reg =3D dwc3_readl(dwc, DWC3_GUSB2PHYACC(0)); if (reg & DWC3_GUSB2PHYACC_DONE) return 0; cpu_relax(); @@ -55,13 +55,13 @@ static int dwc3_ulpi_read(struct device *dev, u8 addr) int ret; =20 reg =3D DWC3_GUSB2PHYACC_NEWREGREQ | DWC3_ULPI_ADDR(addr); - dwc3_writel(dwc->regs, DWC3_GUSB2PHYACC(0), reg); + dwc3_writel(dwc, DWC3_GUSB2PHYACC(0), reg); =20 ret =3D dwc3_ulpi_busyloop(dwc, addr, true); if (ret) return ret; =20 - reg =3D dwc3_readl(dwc->regs, DWC3_GUSB2PHYACC(0)); + reg =3D dwc3_readl(dwc, DWC3_GUSB2PHYACC(0)); =20 return DWC3_GUSB2PHYACC_DATA(reg); } @@ -73,7 +73,7 @@ static int dwc3_ulpi_write(struct device *dev, u8 addr, u= 8 val) =20 reg =3D DWC3_GUSB2PHYACC_NEWREGREQ | DWC3_ULPI_ADDR(addr); reg |=3D DWC3_GUSB2PHYACC_WRITE | val; - dwc3_writel(dwc->regs, DWC3_GUSB2PHYACC(0), reg); + dwc3_writel(dwc, DWC3_GUSB2PHYACC(0), reg); =20 return dwc3_ulpi_busyloop(dwc, addr, false); } --=20 2.34.1 From nobody Sat Feb 7 08:45:30 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 5EA6427B335 for ; Tue, 13 Jan 2026 10:34: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=1768300460; cv=none; b=oZ7dYmcfzlVJ/Q4QcT17nmazDPhQOy1RGtPoHkBPe6nRn4aRinEBfNDtEyP6GTL2rDC61lLZjgI8ftju4TBIbBSdgsGvrpg6koZcOTjRTyACyuE7Fzw5LB3WJVrWqv8cfNkwRWMJq74lz3X73OVBiIi6aiLGl+KSWJSYXeJiw/4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768300460; c=relaxed/simple; bh=N2VNzpk1OUWD/uqqxAkqSpmrQ8cyZK9ByiBM0cM/fa8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=CWVIKilMPy7q56CGba4KZu1o5ZoHoilDTff85bGgC9lF0Xa/vlZpWKSDh9D1vY5DnPEX+/PkANTuqwwGPU4++B5J+SsVZk1hJmy6t0SVessMM/a5z8fkHCrtygNfJPIliIKqgchKH1oU61RpG9odLOHXo04+oMYCSuZQ6HVIRy8= 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=X4+N3upW; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=eE7zErjk; 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="X4+N3upW"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="eE7zErjk" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60D6twDn2604045 for ; Tue, 13 Jan 2026 10:34:17 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=UadwJzR+y3c uoUQZH5RX0jLPGRcNPra+nfG9fdJyCOU=; b=X4+N3upWgTXfCfsrlT94RoTQMc9 KDuPZ4nnhsMXeJJsoPb/y4N91XAR5bG2HZzXr2o+YgGz9M9GOG1o6WRZmXd9raTr ij+lBNf7C+kakJMK/aF6fzZgieSIA7fVlc1bHQqlL+oHuOoKgff7cGCFxNI3PM4T CXc4hMrkynLJ1oqD8xTpszEl0j9dbM4B+9wUDJR684dsmHSIIxsJd3FvfGAutPUr h4MusFu3IECG3bJh1pCPQkd30yI8kEQqvzlVSQevdMiFRyyhkpQRIGZXl9xA6zHD bswJ8lfFnFrQPNCpltlhVDqo+Z1L+sKrf+IKPGSerqqtjpyAiElVB+HjNfw== Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bn7uyta5h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 13 Jan 2026 10:34:17 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-b609c0f6522so13719648a12.3 for ; Tue, 13 Jan 2026 02:34:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1768300457; x=1768905257; 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=UadwJzR+y3cuoUQZH5RX0jLPGRcNPra+nfG9fdJyCOU=; b=eE7zErjk6UszF2901/wukDnw6rmgsWHIsetvqpKEAIdTetRuUxe6gmvAIFKjRi/sqj 89ENK0l8IgniSYFpEPOqL7uT2h2eMgENFbnatX3lGxHLbjCEigsmMwmJ8mYsRs/rFpNG z2tZQgkYa3zRG5z6FYpdOXKkAzJj+kaDiw9xM6aWk2O6vhFaNy/sVWRUdWqa5KSFkU9/ ivsrgK54z7KFBn6iT5Y3BbijrIcdLBKXVnkO4q6hFXCmbnD8xA/QqLRMJatklNPMOne6 SJLoZ4wpUMjP/45gMN0UG5Z5E1Ywf5ifGzPSimuOfCpD/stBLx+jByQPojgx+JYdrLLo biZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768300457; x=1768905257; 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=UadwJzR+y3cuoUQZH5RX0jLPGRcNPra+nfG9fdJyCOU=; b=GgcN8m8WxbUeGaL99ZL+/4Oe3T+laNLVUr8eoF6a25qhGz4xceAF3Y0z9nd5ZNzFPq +ajXcDp9L3iWBXbZTuff2uuI9MeVQsAMsOyjuSX35ZPDnUk3+3M8W+qlWZEhM+VABbVT /KhZHB1Mt8+cQlurP54Ioy4fxEKN58uegSTknD+2y4DBV0urlSPkqsyjJ+oPjt8INdmd 6d8dNFal4WDcaB8yb4Ygjwm1EKWcYCHSwVTZEoEBrRHJdAwMAQWosO6BrhMb20IBYzvo vSN+4ZlO0nqYoQTXgCwCdKUY7FEp4Ag95jo/+WoMOxLUymQrvZkFT5ghkW0FInaLRceu 1xMQ== X-Forwarded-Encrypted: i=1; AJvYcCWzhORsSXOb9vXOZWE5zB6yARf30CWYphwoPrf98axNhmZ3yrCVimBJ02LzrEKPii/GjVtwr1ysKhRqpzc=@vger.kernel.org X-Gm-Message-State: AOJu0Yw4V0qLtQHkhIZa73j96c7E8pVmkwssV7SpffQeGROxVr1ZC4bw I4VyOCO4z/+4Ie2uw31mJM3WEGaGNfi9Q0UaFN3w1EgCipML8+FT05bqYY42mzkq47FAoC1SpTR nSMqInYF2HqvIX3LHdoNMf1DEou6XbI2dVofPD6cM1Rw0h+558Gz1QwdCcUDiG7lHv+w= X-Gm-Gg: AY/fxX6K1HTeu9Np85/HJyknkXqi+bP6h0fyI5mKVOm0AstsITPJBIRdDHRQB0fVLc4 YZ4tMnqPRu+Fm4VEgXifpMhrabXFdplGKMdt+xykUmLNcXq29M9ePtOgo2CO87UzwLfi7+xFV+U ueRkg/cSFGFBEHChvmtoX8cVPFRXdP3fMuyjtwu78b1Aa38NeH91OUhjH1wa51PjBVkpJqtS66e Ks+J5iKEsuCV88IaMyMCeJUI6wazR8sdnARrsI40sNRUm7VOloN4sie5YHGUsj7RT4UjVE7K/6x svIUvP8o/PF0+pUlQwlaBVwFKZQOLi8i/+vYtGtqCi7GIClXf7jWuTU8ZQnLfI90gDvwwtseEqC Na3nOnsh6z2JtBRaEXJxLX+WbXMrKAbqdk8JehA== X-Received: by 2002:a05:6a21:6d91:b0:366:14ac:e1d8 with SMTP id adf61e73a8af0-3898f9bcfd0mr19260592637.62.1768300456709; Tue, 13 Jan 2026 02:34:16 -0800 (PST) X-Google-Smtp-Source: AGHT+IGcLvKMIuDz2EnZK3tVeoNEoRXZOEa3NbThsu5K5DEDyKTCSCJL3KC8t3gpci2vYKklSXTniA== X-Received: by 2002:a05:6a21:6d91:b0:366:14ac:e1d8 with SMTP id adf61e73a8af0-3898f9bcfd0mr19260569637.62.1768300456180; Tue, 13 Jan 2026 02:34:16 -0800 (PST) Received: from hu-prashk-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c4cca06b2edsm19769911a12.32.2026.01.13.02.34.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Jan 2026 02:34: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 v3 3/3] usb: dwc3: Log dwc3 instance name in traces Date: Tue, 13 Jan 2026 16:04:00 +0530 Message-Id: <20260113103400.2347763-4-prashanth.k@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260113103400.2347763-1-prashanth.k@oss.qualcomm.com> References: <20260113103400.2347763-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-ORIG-GUID: joqXTIyoteTE8EfdvykwR1p3QDpLrbcz X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTEzMDA4OSBTYWx0ZWRfX+UUZVJ6FhAIZ kmFLN83ViUZEi7ryNdl56WYAvAMxg8sZaSJ13UDFxlH7r33j18e5HPyJcJrqhuzW+pf3fTu6yT0 4oZ6H97DCQaYvuivHDegX0IIXwBgV3CIhtx8ySr1SYHCqw/AF2+dGue/40XBBGpDleVNEDx9lRw Aja0i1dFG6TS44vpJaPXLQANzR0TPvKIuTmghM7Q9M/9FTUmm5O4i+60O/DSneH75MOavItGcqE HA5XhiHQfHSkmMVHI1sZuudRJqDHBKxLEm8oHJs0qUGLjDVV4D+jTuBv0aO59FaXRE4U1UVK0Ol 5vLSZRknryWJ9eZnf7qtHOusJTHhm477wWKT+vSwGTVw62k9ElsfvyInkL7TR1yvD3v1gJ6CviW 6EbOMvk40Lq9Vpy7Xnl/aQC5E/WEWY/p5hgYrG3lF4DpYJzz0GPAEl8h3X9qy23SC/8dJYALsD0 uMja+JMKoGN53zmo5vA== X-Authority-Analysis: v=2.4 cv=bpdBxUai c=1 sm=1 tr=0 ts=69661fa9 cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=pFfNapkC30Hq8z2voUcA:9 a=ZJcsyrhuACFDsyty:21 a=3WC7DwWrALyhR5TkjVHa:22 X-Proofpoint-GUID: joqXTIyoteTE8EfdvykwR1p3QDpLrbcz 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-13_02,2026-01-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 priorityscore=1501 lowpriorityscore=0 adultscore=0 impostorscore=0 clxscore=1015 phishscore=0 spamscore=0 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601130089 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, which is obtained from DT/ACPI, and append it to the 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 | 5 ++- drivers/usb/dwc3/core.h | 3 ++ 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..125616489e04 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,9 @@ int dwc3_core_probe(const struct dwc3_probe_data *dat= a) dwc_res =3D *res; dwc_res.start +=3D DWC3_GLOBALS_REGS_START; =20 + /* Store the base register address for using it in traces later */ + dwc->address =3D (u32)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..a8308087f786 100644 --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h @@ -1178,6 +1178,8 @@ 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. + * @address: The register base address of controller as specified in DT/AC= PI. + * Stored as string & used for logging the controller instance in tra= ce. */ struct dwc3 { struct work_struct drd_work; @@ -1412,6 +1414,7 @@ struct dwc3 { struct dentry *debug_root; u32 gsbuscfg0_reqinfo; u32 wakeup_pending_funcs; + u32 address; }; =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 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..6c2c4990917a 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(u32, address) __field(u32, mode) ), TP_fast_assign( + __entry->address =3D dwc->address; __entry->mode =3D mode; ), - TP_printk("mode %s", dwc3_mode_string(__entry->mode)) + TP_printk("%08x: mode %s", __entry->address, dwc3_mode_string(__entry->mo= de)) ); =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(u32, address) __field(void *, base) __field(u32, offset) __field(u32, value) ), TP_fast_assign( + __entry->address =3D dwc->address; __entry->base =3D base; __entry->offset =3D offset; __entry->value =3D value; ), - TP_printk("addr %p offset %04x value %08x", + TP_printk("%08x: addr %p offset %04x value %08x", + __entry->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(u32, address) __field(u32, event) __field(u32, ep0state) ), TP_fast_assign( + __entry->address =3D dwc->address; __entry->event =3D event; __entry->ep0state =3D dwc->ep0state; ), - TP_printk("event (%08x): %s", __entry->event, + TP_printk("%08x: event (%08x): %s", __entry->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(u32, 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->address =3D dwc->address; __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("%08x: %s", __entry->address, usb_decode_ctrl(__get_buf(DWC3_MS= G_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(u32, 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->address =3D req->dep->dwc->address; __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("%08x: %s: req %p length %u/%u %s%s%s =3D=3D> %d", + __entry->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(u32, address) __field(unsigned int, cmd) __field(u32, param) __field(int, status) ), TP_fast_assign( + __entry->address =3D dwc->address; __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("%08x: cmd '%s' [%x] param %08x --> status: %s", + __entry->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(u32, 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->address =3D dep->dwc->address; __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("%08x: %s: cmd '%s' [%x] params %08x %08x %08x --> status: %s", + __entry->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(u32, 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->address =3D dep->dwc->address; __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("%08x: %s: trb %p (E%d:D%d) buf %08x%08x size %s%d ctrl %08x so= fn %08x (%c%c%c%c:%c%c:%s)", + __entry->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(u32, 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->address =3D dep->dwc->address; __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("%08x: %s: mps %d/%d streams %d burst %d ring %d/%d flags %c:%c= %c%c%c:%c", + __entry->address, __get_str(name), __entry->maxpacket, __entry->maxpacket_limit, __entry->max_streams, __entry->maxburst, __entry->trb_enqueue, __entry->trb_dequeue, --=20 2.34.1