lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260109005417.tmwtnvllpd2qi5ma@synopsys.com>
Date: Fri, 9 Jan 2026 00:54:18 +0000
From: Thinh Nguyen <Thinh.Nguyen@...opsys.com>
To: Prashanth K <prashanth.k@....qualcomm.com>
CC: Thinh Nguyen <Thinh.Nguyen@...opsys.com>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        "linux-usb@...r.kernel.org" <linux-usb@...r.kernel.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v2 2/3] usb: dwc3: Add dwc pointer to dwc3_readl/writel

On Mon, Jan 05, 2026, Prashanth K wrote:
> 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 <prashanth.k@....qualcomm.com>
> ---
>  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;
>  
>  	for (i = 0; i < dwc->num_usb3_ports; i++) {
> -		reg = dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(i));
> +		reg = dwc3_readl(dwc, DWC3_GUSB3PIPECTL(i));
>  		if (enable && !dwc->dis_u3_susphy_quirk)
>  			reg |= DWC3_GUSB3PIPECTL_SUSPHY;
>  		else
>  			reg &= ~DWC3_GUSB3PIPECTL_SUSPHY;
>  
> -		dwc3_writel(dwc->regs, DWC3_GUSB3PIPECTL(i), reg);
> +		dwc3_writel(dwc, DWC3_GUSB3PIPECTL(i), reg);
>  	}
>  
>  	for (i = 0; i < dwc->num_usb2_ports; i++) {
> -		reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(i));
> +		reg = dwc3_readl(dwc, DWC3_GUSB2PHYCFG(i));
>  		if (enable && !dwc->dis_u2_susphy_quirk)
>  			reg |= DWC3_GUSB2PHYCFG_SUSPHY;
>  		else
>  			reg &= ~DWC3_GUSB2PHYCFG_SUSPHY;
>  
> -		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 ignore_susphy)
>  	unsigned int hw_mode;
>  	u32 reg;
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_GCTL);
> +	reg = dwc3_readl(dwc, DWC3_GCTL);
>  
>  	 /*
>  	  * For DRD controllers, GUSB3PIPECTL.SUSPENDENABLE and
> @@ -155,7 +155,7 @@ void dwc3_set_prtcap(struct dwc3 *dwc, u32 mode, bool ignore_susphy)
>  
>  	reg &= ~(DWC3_GCTL_PRTCAPDIR(DWC3_GCTL_PRTCAP_OTG));
>  	reg |= DWC3_GCTL_PRTCAPDIR(mode);
> -	dwc3_writel(dwc->regs, DWC3_GCTL, reg);
> +	dwc3_writel(dwc, DWC3_GCTL, reg);
>  
>  	dwc->current_dr_role = 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 != DWC3_GCTL_PRTCAP_OTG)) {
> -		reg = dwc3_readl(dwc->regs, DWC3_GCTL);
> +		reg = dwc3_readl(dwc, DWC3_GCTL);
>  		reg |= DWC3_GCTL_CORESOFTRESET;
> -		dwc3_writel(dwc->regs, DWC3_GCTL, reg);
> +		dwc3_writel(dwc, DWC3_GCTL, reg);
>  
>  		/*
>  		 * Wait for internal clocks to synchronized. DWC_usb31 and
> @@ -228,9 +228,9 @@ static void __dwc3_set_mode(struct work_struct *work)
>  		 */
>  		msleep(100);
>  
> -		reg = dwc3_readl(dwc->regs, DWC3_GCTL);
> +		reg = dwc3_readl(dwc, DWC3_GCTL);
>  		reg &= ~DWC3_GCTL_CORESOFTRESET;
> -		dwc3_writel(dwc->regs, DWC3_GCTL, reg);
> +		dwc3_writel(dwc, DWC3_GCTL, reg);
>  	}
>  
>  	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);
>  
>  			if (dwc->dis_split_quirk) {
> -				reg = dwc3_readl(dwc->regs, DWC3_GUCTL3);
> +				reg = dwc3_readl(dwc, DWC3_GUCTL3);
>  				reg |= 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 = dep->dwc;
>  	u32			reg;
>  
> -	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));
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_GDBGFIFOSPACE);
> +	reg = dwc3_readl(dwc, DWC3_GDBGFIFOSPACE);
>  
>  	return DWC3_GDBGFIFOSPACE_SPACE_AVAILABLE(reg);
>  }
> @@ -332,7 +332,7 @@ int dwc3_core_soft_reset(struct dwc3 *dwc)
>  	if (dwc->current_dr_role == DWC3_GCTL_PRTCAP_HOST)
>  		return 0;
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_DCTL);
> +	reg = dwc3_readl(dwc, DWC3_DCTL);
>  	reg |= DWC3_DCTL_CSFTRST;
>  	reg &= ~DWC3_DCTL_RUN_STOP;
>  	dwc3_gadget_dctl_write_safe(dwc, reg);
> @@ -347,7 +347,7 @@ int dwc3_core_soft_reset(struct dwc3 *dwc)
>  		retries = 10;
>  
>  	do {
> -		reg = dwc3_readl(dwc->regs, DWC3_DCTL);
> +		reg = dwc3_readl(dwc, DWC3_DCTL);
>  		if (!(reg & DWC3_DCTL_CSFTRST))
>  			goto done;
>  
> @@ -387,12 +387,12 @@ static void dwc3_frame_length_adjustment(struct dwc3 *dwc)
>  	if (dwc->fladj == 0)
>  		return;
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_GFLADJ);
> +	reg = dwc3_readl(dwc, DWC3_GFLADJ);
>  	dft = reg & DWC3_GFLADJ_30MHZ_MASK;
>  	if (dft != dwc->fladj) {
>  		reg &= ~DWC3_GFLADJ_30MHZ_MASK;
>  		reg |= DWC3_GFLADJ_30MHZ_SDBND_SEL | dwc->fladj;
> -		dwc3_writel(dwc->regs, DWC3_GFLADJ, reg);
> +		dwc3_writel(dwc, DWC3_GFLADJ, reg);
>  	}
>  }
>  
> @@ -424,10 +424,10 @@ static void dwc3_ref_clk_period(struct dwc3 *dwc)
>  		return;
>  	}
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_GUCTL);
> +	reg = dwc3_readl(dwc, DWC3_GUCTL);
>  	reg &= ~DWC3_GUCTL_REFCLKPER_MASK;
>  	reg |=  FIELD_PREP(DWC3_GUCTL_REFCLKPER_MASK, period);
> -	dwc3_writel(dwc->regs, DWC3_GUCTL, reg);
> +	dwc3_writel(dwc, DWC3_GUCTL, reg);
>  
>  	if (DWC3_VER_IS_PRIOR(DWC3, 250A))
>  		return;
> @@ -455,7 +455,7 @@ static void dwc3_ref_clk_period(struct dwc3 *dwc)
>  	 */
>  	decr = 480000000 / rate;
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_GFLADJ);
> +	reg = dwc3_readl(dwc, DWC3_GFLADJ);
>  	reg &= ~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 |=  DWC3_GFLADJ_REFCLK_LPM_SEL;
>  
> -	dwc3_writel(dwc->regs, DWC3_GFLADJ, reg);
> +	dwc3_writel(dwc, DWC3_GFLADJ, reg);
>  }
>  
>  /**
> @@ -569,16 +569,16 @@ int dwc3_event_buffers_setup(struct dwc3 *dwc)
>  
>  	evt = dwc->ev_buf;
>  	evt->lpos = 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));
>  
>  	/* Clear any stale event */
> -	reg = dwc3_readl(dwc->regs, DWC3_GEVNTCOUNT(0));
> -	dwc3_writel(dwc->regs, DWC3_GEVNTCOUNT(0), reg);
> +	reg = dwc3_readl(dwc, DWC3_GEVNTCOUNT(0));
> +	dwc3_writel(dwc, DWC3_GEVNTCOUNT(0), reg);
>  	return 0;
>  }
>  
> @@ -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 = dwc3_readl(dwc->regs, DWC3_DSTS);
> +	reg = dwc3_readl(dwc, DWC3_DSTS);
>  	if (!(reg & DWC3_DSTS_DEVCTRLHLT))
>  		return;
>  
> @@ -601,14 +601,14 @@ void dwc3_event_buffers_cleanup(struct dwc3 *dwc)
>  
>  	evt->lpos = 0;
>  
> -	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));
>  
>  	/* Clear any stale event */
> -	reg = dwc3_readl(dwc->regs, DWC3_GEVNTCOUNT(0));
> -	dwc3_writel(dwc->regs, DWC3_GEVNTCOUNT(0), reg);
> +	reg = dwc3_readl(dwc, DWC3_GEVNTCOUNT(0));
> +	dwc3_writel(dwc, DWC3_GEVNTCOUNT(0), reg);
>  }
>  
>  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 = &dwc->hwparams;
>  
> -	parms->hwparams0 = dwc3_readl(dwc->regs, DWC3_GHWPARAMS0);
> -	parms->hwparams1 = dwc3_readl(dwc->regs, DWC3_GHWPARAMS1);
> -	parms->hwparams2 = dwc3_readl(dwc->regs, DWC3_GHWPARAMS2);
> -	parms->hwparams3 = dwc3_readl(dwc->regs, DWC3_GHWPARAMS3);
> -	parms->hwparams4 = dwc3_readl(dwc->regs, DWC3_GHWPARAMS4);
> -	parms->hwparams5 = dwc3_readl(dwc->regs, DWC3_GHWPARAMS5);
> -	parms->hwparams6 = dwc3_readl(dwc->regs, DWC3_GHWPARAMS6);
> -	parms->hwparams7 = dwc3_readl(dwc->regs, DWC3_GHWPARAMS7);
> -	parms->hwparams8 = dwc3_readl(dwc->regs, DWC3_GHWPARAMS8);
> +	parms->hwparams0 = dwc3_readl(dwc, DWC3_GHWPARAMS0);
> +	parms->hwparams1 = dwc3_readl(dwc, DWC3_GHWPARAMS1);
> +	parms->hwparams2 = dwc3_readl(dwc, DWC3_GHWPARAMS2);
> +	parms->hwparams3 = dwc3_readl(dwc, DWC3_GHWPARAMS3);
> +	parms->hwparams4 = dwc3_readl(dwc, DWC3_GHWPARAMS4);
> +	parms->hwparams5 = dwc3_readl(dwc, DWC3_GHWPARAMS5);
> +	parms->hwparams6 = dwc3_readl(dwc, DWC3_GHWPARAMS6);
> +	parms->hwparams7 = dwc3_readl(dwc, DWC3_GHWPARAMS7);
> +	parms->hwparams8 = dwc3_readl(dwc, DWC3_GHWPARAMS8);
>  
>  	if (DWC3_IP_IS(DWC32))
> -		parms->hwparams9 = dwc3_readl(dwc->regs, DWC3_GHWPARAMS9);
> +		parms->hwparams9 = dwc3_readl(dwc, DWC3_GHWPARAMS9);
>  }
>  
>  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 != DWC3_GSBUSCFG0_REQINFO_UNSPECIFIED) {
>  		u32 reg;
>  
> -		reg = dwc3_readl(dwc->regs, DWC3_GSBUSCFG0);
> +		reg = dwc3_readl(dwc, DWC3_GSBUSCFG0);
>  		reg &= ~DWC3_GSBUSCFG0_REQINFO(~0);
>  		reg |= DWC3_GSBUSCFG0_REQINFO(dwc->gsbuscfg0_reqinfo);
> -		dwc3_writel(dwc->regs, DWC3_GSBUSCFG0, reg);
> +		dwc3_writel(dwc, DWC3_GSBUSCFG0, reg);
>  	}
>  }
>  
> @@ -668,7 +668,7 @@ static int dwc3_ss_phy_setup(struct dwc3 *dwc, int index)
>  {
>  	u32 reg;
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(index));
> +	reg = dwc3_readl(dwc, DWC3_GUSB3PIPECTL(index));
>  
>  	/*
>  	 * 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 index)
>  	if (dwc->dis_del_phy_power_chg_quirk)
>  		reg &= ~DWC3_GUSB3PIPECTL_DEPOCHANGE;
>  
> -	dwc3_writel(dwc->regs, DWC3_GUSB3PIPECTL(index), reg);
> +	dwc3_writel(dwc, DWC3_GUSB3PIPECTL(index), reg);
>  
>  	return 0;
>  }
> @@ -715,7 +715,7 @@ static int dwc3_hs_phy_setup(struct dwc3 *dwc, int index)
>  {
>  	u32 reg;
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(index));
> +	reg = dwc3_readl(dwc, DWC3_GUSB2PHYCFG(index));
>  
>  	/* 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 index)
>  		} else if (dwc->hsphy_interface &&
>  				!strncmp(dwc->hsphy_interface, "ulpi", 4)) {
>  			reg |= 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 index)
>  	if (dwc->ulpi_ext_vbus_drv)
>  		reg |= DWC3_GUSB2PHYCFG_ULPIEXTVBUSDRV;
>  
> -	dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(index), reg);
> +	dwc3_writel(dwc, DWC3_GUSB2PHYCFG(index), reg);
>  
>  	return 0;
>  }
> @@ -991,15 +991,15 @@ static bool dwc3_core_is_valid(struct dwc3 *dwc)
>  {
>  	u32 reg;
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_GSNPSID);
> +	reg = dwc3_readl(dwc, DWC3_GSNPSID);
>  	dwc->ip = DWC3_GSNPS_ID(reg);
>  
>  	/* This should read as U3 followed by revision number */
>  	if (DWC3_IP_IS(DWC3)) {
>  		dwc->revision = reg;
>  	} else if (DWC3_IP_IS(DWC31) || DWC3_IP_IS(DWC32)) {
> -		dwc->revision = dwc3_readl(dwc->regs, DWC3_VER_NUMBER);
> -		dwc->version_type = dwc3_readl(dwc->regs, DWC3_VER_TYPE);
> +		dwc->revision = dwc3_readl(dwc, DWC3_VER_NUMBER);
> +		dwc->version_type = dwc3_readl(dwc, DWC3_VER_TYPE);
>  	} else {
>  		return false;
>  	}
> @@ -1013,7 +1013,7 @@ static void dwc3_core_setup_global_control(struct dwc3 *dwc)
>  	unsigned int hw_mode;
>  	u32 reg;
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_GCTL);
> +	reg = dwc3_readl(dwc, DWC3_GCTL);
>  	reg &= ~DWC3_GCTL_SCALEDOWN_MASK;
>  	hw_mode = DWC3_GHWPARAMS0_MODE(dwc->hwparams.hwparams0);
>  	power_opt = DWC3_GHWPARAMS1_EN_PWROPT(dwc->hwparams.hwparams1);
> @@ -1091,7 +1091,7 @@ static void dwc3_core_setup_global_control(struct dwc3 *dwc)
>  	if (DWC3_VER_IS_PRIOR(DWC3, 190A))
>  		reg |= DWC3_GCTL_U2RSTECN;
>  
> -	dwc3_writel(dwc->regs, DWC3_GCTL, reg);
> +	dwc3_writel(dwc, DWC3_GCTL, reg);
>  }
>  
>  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;
>  
> -	cfg = dwc3_readl(dwc->regs, DWC3_GSBUSCFG0);
> +	cfg = dwc3_readl(dwc, DWC3_GSBUSCFG0);
>  
>  	/*
>  	 * Handle property "snps,incr-burst-type-adjustment".
> @@ -1186,7 +1186,7 @@ static void dwc3_set_incr_burst_type(struct dwc3 *dwc)
>  		break;
>  	}
>  
> -	dwc3_writel(dwc->regs, DWC3_GSBUSCFG0, cfg);
> +	dwc3_writel(dwc, DWC3_GSBUSCFG0, cfg);
>  }
>  
>  static void dwc3_set_power_down_clk_scale(struct dwc3 *dwc)
> @@ -1211,12 +1211,12 @@ static void dwc3_set_power_down_clk_scale(struct dwc3 *dwc)
>  	 * (3x or more) to be within the requirement.
>  	 */
>  	scale = DIV_ROUND_UP(clk_get_rate(dwc->susp_clk), 16000);
> -	reg = dwc3_readl(dwc->regs, DWC3_GCTL);
> +	reg = 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 &= ~(DWC3_GCTL_PWRDNSCALE_MASK);
>  		reg |= DWC3_GCTL_PWRDNSCALE(scale);
> -		dwc3_writel(dwc->regs, DWC3_GCTL, reg);
> +		dwc3_writel(dwc, DWC3_GCTL, reg);
>  	}
>  }
>  
> @@ -1239,7 +1239,7 @@ static void dwc3_config_threshold(struct dwc3 *dwc)
>  		tx_maxburst = dwc->tx_max_burst_prd;
>  
>  		if (rx_thr_num && rx_maxburst) {
> -			reg = dwc3_readl(dwc->regs, DWC3_GRXTHRCFG);
> +			reg = dwc3_readl(dwc, DWC3_GRXTHRCFG);
>  			reg |= DWC31_RXTHRNUMPKTSEL_PRD;
>  
>  			reg &= ~DWC31_RXTHRNUMPKT_PRD(~0);
> @@ -1248,11 +1248,11 @@ static void dwc3_config_threshold(struct dwc3 *dwc)
>  			reg &= ~DWC31_MAXRXBURSTSIZE_PRD(~0);
>  			reg |= DWC31_MAXRXBURSTSIZE_PRD(rx_maxburst);
>  
> -			dwc3_writel(dwc->regs, DWC3_GRXTHRCFG, reg);
> +			dwc3_writel(dwc, DWC3_GRXTHRCFG, reg);
>  		}
>  
>  		if (tx_thr_num && tx_maxburst) {
> -			reg = dwc3_readl(dwc->regs, DWC3_GTXTHRCFG);
> +			reg = dwc3_readl(dwc, DWC3_GTXTHRCFG);
>  			reg |= DWC31_TXTHRNUMPKTSEL_PRD;
>  
>  			reg &= ~DWC31_TXTHRNUMPKT_PRD(~0);
> @@ -1261,7 +1261,7 @@ static void dwc3_config_threshold(struct dwc3 *dwc)
>  			reg &= ~DWC31_MAXTXBURSTSIZE_PRD(~0);
>  			reg |= DWC31_MAXTXBURSTSIZE_PRD(tx_maxburst);
>  
> -			dwc3_writel(dwc->regs, DWC3_GTXTHRCFG, reg);
> +			dwc3_writel(dwc, DWC3_GTXTHRCFG, reg);
>  		}
>  	}
>  
> @@ -1272,7 +1272,7 @@ static void dwc3_config_threshold(struct dwc3 *dwc)
>  
>  	if (DWC3_IP_IS(DWC3)) {
>  		if (rx_thr_num && rx_maxburst) {
> -			reg = dwc3_readl(dwc->regs, DWC3_GRXTHRCFG);
> +			reg = dwc3_readl(dwc, DWC3_GRXTHRCFG);
>  			reg |= DWC3_GRXTHRCFG_PKTCNTSEL;
>  
>  			reg &= ~DWC3_GRXTHRCFG_RXPKTCNT(~0);
> @@ -1281,11 +1281,11 @@ static void dwc3_config_threshold(struct dwc3 *dwc)
>  			reg &= ~DWC3_GRXTHRCFG_MAXRXBURSTSIZE(~0);
>  			reg |= DWC3_GRXTHRCFG_MAXRXBURSTSIZE(rx_maxburst);
>  
> -			dwc3_writel(dwc->regs, DWC3_GRXTHRCFG, reg);
> +			dwc3_writel(dwc, DWC3_GRXTHRCFG, reg);
>  		}
>  
>  		if (tx_thr_num && tx_maxburst) {
> -			reg = dwc3_readl(dwc->regs, DWC3_GTXTHRCFG);
> +			reg = dwc3_readl(dwc, DWC3_GTXTHRCFG);
>  			reg |= DWC3_GTXTHRCFG_PKTCNTSEL;
>  
>  			reg &= ~DWC3_GTXTHRCFG_TXPKTCNT(~0);
> @@ -1294,11 +1294,11 @@ static void dwc3_config_threshold(struct dwc3 *dwc)
>  			reg &= ~DWC3_GTXTHRCFG_MAXTXBURSTSIZE(~0);
>  			reg |= DWC3_GTXTHRCFG_MAXTXBURSTSIZE(tx_maxburst);
>  
> -			dwc3_writel(dwc->regs, DWC3_GTXTHRCFG, reg);
> +			dwc3_writel(dwc, DWC3_GTXTHRCFG, reg);
>  		}
>  	} else {
>  		if (rx_thr_num && rx_maxburst) {
> -			reg = dwc3_readl(dwc->regs, DWC3_GRXTHRCFG);
> +			reg = dwc3_readl(dwc, DWC3_GRXTHRCFG);
>  			reg |= DWC31_GRXTHRCFG_PKTCNTSEL;
>  
>  			reg &= ~DWC31_GRXTHRCFG_RXPKTCNT(~0);
> @@ -1307,11 +1307,11 @@ static void dwc3_config_threshold(struct dwc3 *dwc)
>  			reg &= ~DWC31_GRXTHRCFG_MAXRXBURSTSIZE(~0);
>  			reg |= DWC31_GRXTHRCFG_MAXRXBURSTSIZE(rx_maxburst);
>  
> -			dwc3_writel(dwc->regs, DWC3_GRXTHRCFG, reg);
> +			dwc3_writel(dwc, DWC3_GRXTHRCFG, reg);
>  		}
>  
>  		if (tx_thr_num && tx_maxburst) {
> -			reg = dwc3_readl(dwc->regs, DWC3_GTXTHRCFG);
> +			reg = dwc3_readl(dwc, DWC3_GTXTHRCFG);
>  			reg |= DWC31_GTXTHRCFG_PKTCNTSEL;
>  
>  			reg &= ~DWC31_GTXTHRCFG_TXPKTCNT(~0);
> @@ -1320,7 +1320,7 @@ static void dwc3_config_threshold(struct dwc3 *dwc)
>  			reg &= ~DWC31_GTXTHRCFG_MAXTXBURSTSIZE(~0);
>  			reg |= DWC31_GTXTHRCFG_MAXTXBURSTSIZE(tx_maxburst);
>  
> -			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);
>  
>  	ret = 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 = dwc3_readl(dwc->regs, DWC3_GUCTL2);
> +		reg = dwc3_readl(dwc, DWC3_GUCTL2);
>  		reg |= DWC3_GUCTL2_RST_ACTBITLATER;
> -		dwc3_writel(dwc->regs, DWC3_GUCTL2, reg);
> +		dwc3_writel(dwc, DWC3_GUCTL2, reg);
>  	}
>  
>  	/*
> @@ -1423,9 +1423,9 @@ int dwc3_core_init(struct dwc3 *dwc)
>  	 * setting GUCTL2[19] by default; instead, use GUCTL2[19] = 0.
>  	 */
>  	if (DWC3_VER_IS(DWC3, 320A)) {
> -		reg = dwc3_readl(dwc->regs, DWC3_GUCTL2);
> +		reg = dwc3_readl(dwc, DWC3_GUCTL2);
>  		reg &= ~DWC3_GUCTL2_LC_TIMER;
> -		dwc3_writel(dwc->regs, DWC3_GUCTL2, reg);
> +		dwc3_writel(dwc, DWC3_GUCTL2, reg);
>  	}
>  
>  	/*
> @@ -1438,13 +1438,13 @@ int dwc3_core_init(struct dwc3 *dwc)
>  	 * legacy ULPI PHYs.
>  	 */
>  	if (dwc->resume_hs_terminations) {
> -		reg = dwc3_readl(dwc->regs, DWC3_GUCTL1);
> +		reg = dwc3_readl(dwc, DWC3_GUCTL1);
>  		reg |= DWC3_GUCTL1_RESUME_OPMODE_HS_HOST;
> -		dwc3_writel(dwc->regs, DWC3_GUCTL1, reg);
> +		dwc3_writel(dwc, DWC3_GUCTL1, reg);
>  	}
>  
>  	if (!DWC3_VER_IS_PRIOR(DWC3, 250A)) {
> -		reg = dwc3_readl(dwc->regs, DWC3_GUCTL1);
> +		reg = dwc3_readl(dwc, DWC3_GUCTL1);
>  
>  		/*
>  		 * Enable hardware control of sending remote wakeup
> @@ -1479,7 +1479,7 @@ int dwc3_core_init(struct dwc3 *dwc)
>  				reg &= ~DWC3_GUCTL1_DEV_FORCE_20_CLK_FOR_30_CLK;
>  		}
>  
> -		dwc3_writel(dwc->regs, DWC3_GUCTL1, reg);
> +		dwc3_writel(dwc, DWC3_GUCTL1, reg);
>  	}
>  
>  	dwc3_config_threshold(dwc);
> @@ -1490,9 +1490,9 @@ int dwc3_core_init(struct dwc3 *dwc)
>  		int i;
>  
>  		for (i = 0; i < dwc->num_usb3_ports; i++) {
> -			reg = dwc3_readl(dwc->regs, DWC3_LLUCTL(i));
> +			reg = dwc3_readl(dwc, DWC3_LLUCTL(i));
>  			reg |= DWC3_LLUCTL_FORCE_GEN1;
> -			dwc3_writel(dwc->regs, DWC3_LLUCTL(i), reg);
> +			dwc3_writel(dwc, DWC3_LLUCTL(i), reg);
>  		}
>  	}
>  
> @@ -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 = dwc3_readl(dwc->regs, DWC3_GUCTL3);
> +		reg = dwc3_readl(dwc, DWC3_GUCTL3);
>  		reg |= DWC3_GUCTL3_USB20_RETRY_DISABLE;
> -		dwc3_writel(dwc->regs, DWC3_GUCTL3, reg);
> +		dwc3_writel(dwc, DWC3_GUCTL3, reg);
>  	}
>  
>  	return 0;
> @@ -2437,9 +2437,9 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg)
>  	int ret;
>  
>  	if (!pm_runtime_suspended(dwc->dev) && !PMSG_IS_AUTO(msg)) {
> -		dwc->susphy_state = (dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)) &
> +		dwc->susphy_state = (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 = 0; i < dwc->num_usb2_ports; i++) {
> -				reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(i));
> +				reg = dwc3_readl(dwc, DWC3_GUSB2PHYCFG(i));
>  				reg |=  DWC3_GUSB2PHYCFG_ENBLSLPM |
>  					DWC3_GUSB2PHYCFG_SUSPHY;
> -				dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(i), reg);
> +				dwc3_writel(dwc, DWC3_GUSB2PHYCFG(i), reg);
>  			}
>  
>  			/* 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 = 0; i < dwc->num_usb2_ports; i++) {
> -			reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(i));
> +			reg = dwc3_readl(dwc, DWC3_GUSB2PHYCFG(i));
>  			if (dwc->dis_u2_susphy_quirk)
>  				reg &= ~DWC3_GUSB2PHYCFG_SUSPHY;
>  
>  			if (dwc->dis_enblslpm_quirk)
>  				reg &= ~DWC3_GUSB2PHYCFG_ENBLSLPM;
>  
> -			dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(i), reg);
> +			dwc3_writel(dwc, DWC3_GUSB2PHYCFG(i), reg);
>  		}
>  
>  		for (i = 0; i < dwc->num_usb2_ports; i++)
> @@ -2721,9 +2721,9 @@ void dwc3_pm_complete(struct dwc3 *dwc)
>  
>  	if (dwc->current_dr_role == DWC3_GCTL_PRTCAP_HOST &&
>  			dwc->dis_split_quirk) {
> -		reg = dwc3_readl(dwc->regs, DWC3_GUCTL3);
> +		reg = dwc3_readl(dwc, DWC3_GUCTL3);
>  		reg |= 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)
>  
>  	reg = DWC3_GDBGLSPMUX_HOSTSELECT(sel);
>  
> -	dwc3_writel(dwc->regs, DWC3_GDBGLSPMUX, reg);
> -	val = dwc3_readl(dwc->regs, DWC3_GDBGLSP);
> +	dwc3_writel(dwc, DWC3_GDBGLSPMUX, reg);
> +	val = dwc3_readl(dwc, DWC3_GDBGLSP);
>  	seq_printf(s, "GDBGLSP[%d] = 0x%08x\n", sel, val);
>  
>  	if (dbc_enabled && sel < 256) {
>  		reg |= DWC3_GDBGLSPMUX_ENDBC;
> -		dwc3_writel(dwc->regs, DWC3_GDBGLSPMUX, reg);
> -		val = dwc3_readl(dwc->regs, DWC3_GDBGLSP);
> +		dwc3_writel(dwc, DWC3_GDBGLSPMUX, reg);
> +		val = dwc3_readl(dwc, DWC3_GDBGLSP);
>  		seq_printf(s, "GDBGLSP_DBC[%d] = 0x%08x\n", sel, val);
>  	}
>  }
> @@ -316,8 +316,8 @@ static void dwc3_gadget_lsp(struct seq_file *s)
>  
>  	for (i = 0; i < 16; i++) {
>  		reg = DWC3_GDBGLSPMUX_DEVSELECT(i);
> -		dwc3_writel(dwc->regs, DWC3_GDBGLSPMUX, reg);
> -		reg = dwc3_readl(dwc->regs, DWC3_GDBGLSP);
> +		dwc3_writel(dwc, DWC3_GDBGLSPMUX, reg);
> +		reg = dwc3_readl(dwc, DWC3_GDBGLSP);
>  		seq_printf(s, "GDBGLSP[%d] = 0x%08x\n", i, reg);
>  	}
>  }
> @@ -335,7 +335,7 @@ static int dwc3_lsp_show(struct seq_file *s, void *unused)
>  		return ret;
>  
>  	spin_lock_irqsave(&dwc->lock, flags);
> -	reg = dwc3_readl(dwc->regs, DWC3_GSTS);
> +	reg = dwc3_readl(dwc, DWC3_GSTS);
>  	current_mode = DWC3_GSTS_CURMOD(reg);
>  
>  	switch (current_mode) {
> @@ -406,7 +406,7 @@ static int dwc3_mode_show(struct seq_file *s, void *unused)
>  		return ret;
>  
>  	spin_lock_irqsave(&dwc->lock, flags);
> -	reg = dwc3_readl(dwc->regs, DWC3_GCTL);
> +	reg = dwc3_readl(dwc, DWC3_GCTL);
>  	spin_unlock_irqrestore(&dwc->lock, flags);
>  
>  	mode = DWC3_GCTL_PRTCAP(reg);
> @@ -478,7 +478,7 @@ static int dwc3_testmode_show(struct seq_file *s, void *unused)
>  		return ret;
>  
>  	spin_lock_irqsave(&dwc->lock, flags);
> -	reg = dwc3_readl(dwc->regs, DWC3_DCTL);
> +	reg = dwc3_readl(dwc, DWC3_DCTL);
>  	reg &= DWC3_DCTL_TSTCTRL_MASK;
>  	reg >>= 1;
>  	spin_unlock_irqrestore(&dwc->lock, flags);
> @@ -577,7 +577,7 @@ static int dwc3_link_state_show(struct seq_file *s, void *unused)
>  		return ret;
>  
>  	spin_lock_irqsave(&dwc->lock, flags);
> -	reg = dwc3_readl(dwc->regs, DWC3_GSTS);
> +	reg = dwc3_readl(dwc, DWC3_GSTS);
>  	if (DWC3_GSTS_CURMOD(reg) != 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, void *unused)
>  		return 0;
>  	}
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_DSTS);
> +	reg = dwc3_readl(dwc, DWC3_DSTS);
>  	state = DWC3_DSTS_USBLNKST(reg);
>  	speed = reg & DWC3_DSTS_CONNECTSPD;
>  
> @@ -639,14 +639,14 @@ static ssize_t dwc3_link_state_write(struct file *file,
>  		return ret;
>  
>  	spin_lock_irqsave(&dwc->lock, flags);
> -	reg = dwc3_readl(dwc->regs, DWC3_GSTS);
> +	reg = dwc3_readl(dwc, DWC3_GSTS);
>  	if (DWC3_GSTS_CURMOD(reg) != DWC3_GSTS_CURMOD_DEVICE) {
>  		spin_unlock_irqrestore(&dwc->lock, flags);
>  		pm_runtime_put_sync(dwc->dev);
>  		return -EINVAL;
>  	}
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_DSTS);
> +	reg = dwc3_readl(dwc, DWC3_DSTS);
>  	speed = reg & DWC3_DSTS_CONNECTSPD;
>  
>  	if (speed < DWC3_DSTS_SUPERSPEED &&
> @@ -942,10 +942,10 @@ static int dwc3_ep_info_register_show(struct seq_file *s, void *unused)
>  
>  	spin_lock_irqsave(&dwc->lock, flags);
>  	reg = DWC3_GDBGLSPMUX_EPSELECT(dep->number);
> -	dwc3_writel(dwc->regs, DWC3_GDBGLSPMUX, reg);
> +	dwc3_writel(dwc, DWC3_GDBGLSPMUX, reg);
>  
> -	lower_32_bits = dwc3_readl(dwc->regs, DWC3_GDBGEPINFO0);
> -	upper_32_bits = dwc3_readl(dwc->regs, DWC3_GDBGEPINFO1);
> +	lower_32_bits = dwc3_readl(dwc, DWC3_GDBGEPINFO0);
> +	upper_32_bits = dwc3_readl(dwc, DWC3_GDBGEPINFO1);
>  
>  	ep_info = ((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 @@
>  
>  static void dwc3_otg_disable_events(struct dwc3 *dwc, u32 disable_mask)
>  {
> -	u32 reg = dwc3_readl(dwc->regs, DWC3_OEVTEN);
> +	u32 reg = dwc3_readl(dwc, DWC3_OEVTEN);
>  
>  	reg &= ~(disable_mask);
> -	dwc3_writel(dwc->regs, DWC3_OEVTEN, reg);
> +	dwc3_writel(dwc, DWC3_OEVTEN, reg);
>  }
>  
>  static void dwc3_otg_enable_events(struct dwc3 *dwc, u32 enable_mask)
>  {
> -	u32 reg = dwc3_readl(dwc->regs, DWC3_OEVTEN);
> +	u32 reg = dwc3_readl(dwc, DWC3_OEVTEN);
>  
>  	reg |= (enable_mask);
> -	dwc3_writel(dwc->regs, DWC3_OEVTEN, reg);
> +	dwc3_writel(dwc, DWC3_OEVTEN, reg);
>  }
>  
>  static void dwc3_otg_clear_events(struct dwc3 *dwc)
>  {
> -	u32 reg = dwc3_readl(dwc->regs, DWC3_OEVT);
> +	u32 reg = dwc3_readl(dwc, DWC3_OEVT);
>  
> -	dwc3_writel(dwc->regs, DWC3_OEVTEN, reg);
> +	dwc3_writel(dwc, DWC3_OEVTEN, reg);
>  }
>  
>  #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 = _dwc;
>  	irqreturn_t ret = IRQ_NONE;
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_OEVT);
> +	reg = 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;
>  		}
>  
>  		if (dwc->current_otg_role == DWC3_OTG_ROLE_HOST &&
>  		    !(reg & DWC3_OEVT_DEVICEMODE))
>  			dwc->otg_restart_host = true;
> -		dwc3_writel(dwc->regs, DWC3_OEVT, reg);
> +		dwc3_writel(dwc, DWC3_OEVT, reg);
>  		ret = IRQ_WAKE_THREAD;
>  	}
>  
> @@ -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 = dwc3_readl(dwc->regs, DWC3_OCFG);
> +	reg = dwc3_readl(dwc, DWC3_OCFG);
>  	reg |= DWC3_OCFG_SFTRSTMASK;
> -	dwc3_writel(dwc->regs, DWC3_OCFG, reg);
> +	dwc3_writel(dwc, DWC3_OCFG, reg);
>  
>  	/* Disable hibernation for simplicity */
> -	reg = dwc3_readl(dwc->regs, DWC3_GCTL);
> +	reg = dwc3_readl(dwc, DWC3_GCTL);
>  	reg &= ~DWC3_GCTL_GBLHIBERNATIONEN;
> -	dwc3_writel(dwc->regs, DWC3_GCTL, reg);
> +	dwc3_writel(dwc, DWC3_GCTL, reg);
>  
>  	/*
>  	 * Initialize OTG registers as per
>  	 * Figure 11-4 OTG Driver Overall Programming Flow
>  	 */
>  	/* OCFG.SRPCap = 0, OCFG.HNPCap = 0 */
> -	reg = dwc3_readl(dwc->regs, DWC3_OCFG);
> +	reg = dwc3_readl(dwc, DWC3_OCFG);
>  	reg &= ~(DWC3_OCFG_SRPCAP | DWC3_OCFG_HNPCAP);
> -	dwc3_writel(dwc->regs, DWC3_OCFG, reg);
> +	dwc3_writel(dwc, DWC3_OCFG, reg);
>  	/* OEVT = FFFF */
>  	dwc3_otg_clear_events(dwc);
>  	/* OEVTEN = 0 */
> @@ -127,11 +127,11 @@ static void dwc3_otgregs_init(struct dwc3 *dwc)
>  	 * OCTL.PeriMode = 1, OCTL.DevSetHNPEn = 0, OCTL.HstSetHNPEn = 0,
>  	 * OCTL.HNPReq = 0
>  	 */
> -	reg = dwc3_readl(dwc->regs, DWC3_OCTL);
> +	reg = dwc3_readl(dwc, DWC3_OCTL);
>  	reg |= DWC3_OCTL_PERIMODE;
>  	reg &= ~(DWC3_OCTL_DEVSETHNPEN | DWC3_OCTL_HSTSETHNPEN |
>  		 DWC3_OCTL_HNPREQ);
> -	dwc3_writel(dwc->regs, DWC3_OCTL, reg);
> +	dwc3_writel(dwc, DWC3_OCTL, reg);
>  }
>  
>  static int dwc3_otg_get_irq(struct dwc3 *dwc)
> @@ -175,9 +175,9 @@ void dwc3_otg_init(struct dwc3 *dwc)
>  	/* GCTL.PrtCapDir=2'b11 */
>  	dwc3_set_prtcap(dwc, DWC3_GCTL_PRTCAP_OTG, true);
>  	/* GUSB2PHYCFG0.SusPHY=0 */
> -	reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0));
> +	reg = dwc3_readl(dwc, DWC3_GUSB2PHYCFG(0));
>  	reg &= ~DWC3_GUSB2PHYCFG_SUSPHY;
> -	dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg);
> +	dwc3_writel(dwc, DWC3_GUSB2PHYCFG(0), reg);
>  
>  	/* Initialize OTG registers */
>  	dwc3_otgregs_init(dwc);
> @@ -203,17 +203,17 @@ void dwc3_otg_host_init(struct dwc3 *dwc)
>  	 * OCTL.PeriMode=0, OCTL.TermSelDLPulse = 0,
>  	 * OCTL.DevSetHNPEn = 0, OCTL.HstSetHNPEn = 0
>  	 */
> -	reg = dwc3_readl(dwc->regs, DWC3_OCTL);
> +	reg = dwc3_readl(dwc, DWC3_OCTL);
>  	reg &= ~(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);
>  
>  	/*
>  	 * OCFG.DisPrtPwrCutoff = 0/1
>  	 */
> -	reg = dwc3_readl(dwc->regs, DWC3_OCFG);
> +	reg = dwc3_readl(dwc, DWC3_OCFG);
>  	reg &= ~DWC3_OCFG_DISPWRCUTTOFF;
> -	dwc3_writel(dwc->regs, DWC3_OCFG, reg);
> +	dwc3_writel(dwc, DWC3_OCFG, reg);
>  
>  	/*
>  	 * OCFG.SRPCap = 1, OCFG.HNPCap = GHWPARAMS6.HNP_CAP
> @@ -229,15 +229,15 @@ void dwc3_otg_host_init(struct dwc3 *dwc)
>  
>  	/* GUSB2PHYCFG.ULPIAutoRes = 1/0, GUSB2PHYCFG.SusPHY = 1 */
>  	if (!dwc->dis_u2_susphy_quirk) {
> -		reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0));
> +		reg = dwc3_readl(dwc, DWC3_GUSB2PHYCFG(0));
>  		reg |= DWC3_GUSB2PHYCFG_SUSPHY;
> -		dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg);
> +		dwc3_writel(dwc, DWC3_GUSB2PHYCFG(0), reg);
>  	}
>  
>  	/* Set Port Power to enable VBUS: OCTL.PrtPwrCtl = 1 */
> -	reg = dwc3_readl(dwc->regs, DWC3_OCTL);
> +	reg = dwc3_readl(dwc, DWC3_OCTL);
>  	reg |= DWC3_OCTL_PRTPWRCTL;
> -	dwc3_writel(dwc->regs, DWC3_OCTL, reg);
> +	dwc3_writel(dwc, DWC3_OCTL, reg);
>  }
>  
>  /* should be called after Host controller driver is stopped */
> @@ -258,9 +258,9 @@ static void dwc3_otg_host_exit(struct dwc3 *dwc)
>  	 */
>  
>  	/* OCTL.HstSetHNPEn = 0, OCTL.PrtPwrCtl=0 */
> -	reg = dwc3_readl(dwc->regs, DWC3_OCTL);
> +	reg = dwc3_readl(dwc, DWC3_OCTL);
>  	reg &= ~(DWC3_OCTL_HSTSETHNPEN | DWC3_OCTL_PRTPWRCTL);
> -	dwc3_writel(dwc->regs, DWC3_OCTL, reg);
> +	dwc3_writel(dwc, DWC3_OCTL, reg);
>  }
>  
>  /* 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 = GHWPARAMS6.HNP_CAP, OCFG.SRPCap = 1
>  	 * but we keep them 0 for simple dual-role operation.
>  	 */
> -	reg = dwc3_readl(dwc->regs, DWC3_OCFG);
> +	reg = dwc3_readl(dwc, DWC3_OCFG);
>  	/* OCFG.OTGSftRstMsk = 0/1 */
>  	reg |= DWC3_OCFG_SFTRSTMASK;
> -	dwc3_writel(dwc->regs, DWC3_OCFG, reg);
> +	dwc3_writel(dwc, DWC3_OCFG, reg);
>  	/*
>  	 * OCTL.PeriMode = 1
>  	 * OCTL.TermSelDLPulse = 0/1, OCTL.HNPReq = 0
>  	 * OCTL.DevSetHNPEn = 0, OCTL.HstSetHNPEn = 0
>  	 */
> -	reg = dwc3_readl(dwc->regs, DWC3_OCTL);
> +	reg = dwc3_readl(dwc, DWC3_OCTL);
>  	reg |= DWC3_OCTL_PERIMODE;
>  	reg &= ~(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 = 1 */
>  	dwc3_otg_enable_events(dwc, DWC3_OEVTEN_BDEVSESSVLDDETEN);
>  	/* GUSB2PHYCFG.ULPIAutoRes = 0, GUSB2PHYCFG0.SusPHY = 1 */
>  	if (!dwc->dis_u2_susphy_quirk) {
> -		reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0));
> +		reg = dwc3_readl(dwc, DWC3_GUSB2PHYCFG(0));
>  		reg |= DWC3_GUSB2PHYCFG_SUSPHY;
> -		dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg);
> +		dwc3_writel(dwc, DWC3_GUSB2PHYCFG(0), reg);
>  	}
>  	/* GCTL.GblHibernationEn = 0. Already 0. */
>  }
> @@ -319,10 +319,10 @@ static void dwc3_otg_device_exit(struct dwc3 *dwc)
>  				DWC3_OEVTEN_BDEVBHOSTENDEN);
>  
>  	/* OCTL.DevSetHNPEn = 0, OCTL.HNPReq = 0, OCTL.PeriMode=1 */
> -	reg = dwc3_readl(dwc->regs, DWC3_OCTL);
> +	reg = dwc3_readl(dwc, DWC3_OCTL);
>  	reg &= ~(DWC3_OCTL_DEVSETHNPEN | DWC3_OCTL_HNPREQ);
>  	reg |= DWC3_OCTL_PERIMODE;
> -	dwc3_writel(dwc->regs, DWC3_OCTL, reg);
> +	dwc3_writel(dwc, DWC3_OCTL, reg);
>  }
>  
>  void dwc3_otg_update(struct dwc3 *dwc, bool ignore_idstatus)
> @@ -341,7 +341,7 @@ void dwc3_otg_update(struct dwc3 *dwc, bool ignore_idstatus)
>  		return;
>  
>  	if (!ignore_idstatus) {
> -		reg = dwc3_readl(dwc->regs, DWC3_OSTS);
> +		reg = dwc3_readl(dwc, DWC3_OSTS);
>  		id = !!(reg & DWC3_OSTS_CONIDSTS);
>  
>  		dwc->desired_otg_role = 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,
>  
>  		if ((dwc->speed == DWC3_DSTS_SUPERSPEED) ||
>  		    (dwc->speed == DWC3_DSTS_SUPERSPEED_PLUS)) {
> -			reg = dwc3_readl(dwc->regs, DWC3_DCTL);
> +			reg = dwc3_readl(dwc, DWC3_DCTL);
>  			if (reg & DWC3_DCTL_INITU1ENA)
>  				usb_status |= 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;
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_DCTL);
> +	reg = dwc3_readl(dwc, DWC3_DCTL);
>  	if (set)
>  		reg |= DWC3_DCTL_INITU1ENA;
>  	else
>  		reg &= ~DWC3_DCTL_INITU1ENA;
> -	dwc3_writel(dwc->regs, DWC3_DCTL, reg);
> +	dwc3_writel(dwc, DWC3_DCTL, reg);
>  
>  	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;
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_DCTL);
> +	reg = dwc3_readl(dwc, DWC3_DCTL);
>  	if (set)
>  		reg |= DWC3_DCTL_INITU2ENA;
>  	else
>  		reg &= ~DWC3_DCTL_INITU2ENA;
> -	dwc3_writel(dwc->regs, DWC3_DCTL, reg);
> +	dwc3_writel(dwc, DWC3_DCTL, reg);
>  
>  	return 0;
>  }
> @@ -612,10 +612,10 @@ static int dwc3_ep0_set_address(struct dwc3 *dwc, struct usb_ctrlrequest *ctrl)
>  		return -EINVAL;
>  	}
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_DCFG);
> +	reg = dwc3_readl(dwc, DWC3_DCFG);
>  	reg &= ~(DWC3_DCFG_DEVADDR_MASK);
>  	reg |= DWC3_DCFG_DEVADDR(addr);
> -	dwc3_writel(dwc->regs, DWC3_DCFG, reg);
> +	dwc3_writel(dwc, DWC3_DCFG, reg);
>  
>  	if (addr)
>  		usb_gadget_set_state(dwc->gadget, USB_STATE_ADDRESS);
> @@ -672,12 +672,12 @@ static int dwc3_ep0_set_config(struct dwc3 *dwc, struct usb_ctrlrequest *ctrl)
>  			 * Enable transition to U1/U2 state when
>  			 * nothing is pending from application.
>  			 */
> -			reg = dwc3_readl(dwc->regs, DWC3_DCTL);
> +			reg = dwc3_readl(dwc, DWC3_DCTL);
>  			if (!dwc->dis_u1_entry_quirk)
>  				reg |= DWC3_DCTL_ACCEPTU1ENA;
>  			if (!dwc->dis_u2_entry_quirk)
>  				reg |= DWC3_DCTL_ACCEPTU2ENA;
> -			dwc3_writel(dwc->regs, DWC3_DCTL, reg);
> +			dwc3_writel(dwc, DWC3_DCTL, reg);
>  		}
>  		break;
>  
> @@ -717,7 +717,7 @@ static void dwc3_ep0_set_sel_cmpl(struct usb_ep *ep, struct usb_request *req)
>  	dwc->u2sel = le16_to_cpu(timing.u2sel);
>  	dwc->u2pel = le16_to_cpu(timing.u2pel);
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_DCTL);
> +	reg = dwc3_readl(dwc, DWC3_DCTL);
>  	if (reg & DWC3_DCTL_INITU2ENA)
>  		param = dwc->u2pel;
>  	if (reg & DWC3_DCTL_INITU1ENA)
> diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
> index f08560af1701..a85ba5ca7912 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;
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_DCTL);
> +	reg = dwc3_readl(dwc, DWC3_DCTL);
>  	reg &= ~DWC3_DCTL_TSTCTRL_MASK;
>  
>  	switch (mode) {
> @@ -73,7 +73,7 @@ int dwc3_gadget_get_link_state(struct dwc3 *dwc)
>  {
>  	u32		reg;
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_DSTS);
> +	reg = dwc3_readl(dwc, DWC3_DSTS);
>  
>  	return DWC3_DSTS_USBLNKST(reg);
>  }
> @@ -97,7 +97,7 @@ int dwc3_gadget_set_link_state(struct dwc3 *dwc, enum dwc3_link_state state)
>  	 */
>  	if (!DWC3_VER_IS_PRIOR(DWC3, 194A)) {
>  		while (--retries) {
> -			reg = dwc3_readl(dwc->regs, DWC3_DSTS);
> +			reg = 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;
>  	}
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_DCTL);
> +	reg = dwc3_readl(dwc, DWC3_DCTL);
>  	reg &= ~DWC3_DCTL_ULSTCHNGREQ_MASK;
>  
>  	/* set no action before sending new link state change */
> -	dwc3_writel(dwc->regs, DWC3_DCTL, reg);
> +	dwc3_writel(dwc, DWC3_DCTL, reg);
>  
>  	/* set requested state */
>  	reg |= DWC3_DCTL_ULSTCHNGREQ(state);
> -	dwc3_writel(dwc->regs, DWC3_DCTL, reg);
> +	dwc3_writel(dwc, DWC3_DCTL, reg);
>  
>  	/*
>  	 * 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 dwc3_link_state state)
>  	/* wait for a change in DSTS */
>  	retries = 10000;
>  	while (--retries) {
> -		reg = dwc3_readl(dwc->regs, DWC3_DSTS);
> +		reg = dwc3_readl(dwc, DWC3_DSTS);
>  
>  		if (DWC3_DSTS_USBLNKST(reg) == state)
>  			return 0;
> @@ -260,11 +260,11 @@ int dwc3_send_gadget_generic_command(struct dwc3 *dwc, unsigned int cmd,
>  	int		ret = 0;
>  	u32		reg;
>  
> -	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);
>  
>  	do {
> -		reg = dwc3_readl(dwc->regs, DWC3_DGCMD);
> +		reg = dwc3_readl(dwc, DWC3_DGCMD);
>  		if (!(reg & DWC3_DGCMD_CMDACT)) {
>  			status = DWC3_DGCMD_STATUS(reg);
>  			if (status)
> @@ -334,7 +334,7 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsigned int cmd,
>  	 */
>  	if (dwc->gadget->speed <= USB_SPEED_HIGH ||
>  	    DWC3_DEPCMD_CMD(cmd) == DWC3_DEPCMD_ENDTRANSFER) {
> -		reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0));
> +		reg = dwc3_readl(dwc, DWC3_GUSB2PHYCFG(0));
>  		if (unlikely(reg & DWC3_GUSB2PHYCFG_SUSPHY)) {
>  			saved_config |= DWC3_GUSB2PHYCFG_SUSPHY;
>  			reg &= ~DWC3_GUSB2PHYCFG_SUSPHY;
> @@ -346,7 +346,7 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsigned int cmd,
>  		}
>  
>  		if (saved_config)
> -			dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg);
> +			dwc3_writel(dwc, DWC3_GUSB2PHYCFG(0), reg);
>  	}
>  
>  	/*
> @@ -356,9 +356,9 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsigned int cmd,
>  	 * improve performance.
>  	 */
>  	if (DWC3_DEPCMD_CMD(cmd) != 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);
>  	}
>  
>  	/*
> @@ -382,7 +382,7 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsigned int cmd,
>  	else
>  		cmd |= DWC3_DEPCMD_CMDACT;
>  
> -	dwc3_writel(dwc->regs, DWC3_DEPCMD(epnum), cmd);
> +	dwc3_writel(dwc, DWC3_DEPCMD(epnum), cmd);
>  
>  	if (!(cmd & DWC3_DEPCMD_CMDACT) ||
>  		(DWC3_DEPCMD_CMD(cmd) == DWC3_DEPCMD_ENDTRANSFER &&
> @@ -392,7 +392,7 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsigned int cmd,
>  	}
>  
>  	do {
> -		reg = dwc3_readl(dwc->regs, DWC3_DEPCMD(epnum));
> +		reg = dwc3_readl(dwc, DWC3_DEPCMD(epnum));
>  		if (!(reg & DWC3_DEPCMD_CMDACT)) {
>  			cmd_status = DWC3_DEPCMD_STATUS(reg);
>  
> @@ -448,9 +448,9 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsigned int cmd,
>  		mdelay(1);
>  
>  	if (saved_config) {
> -		reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0));
> +		reg = dwc3_readl(dwc, DWC3_GUSB2PHYCFG(0));
>  		reg |= saved_config;
> -		dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg);
> +		dwc3_writel(dwc, DWC3_GUSB2PHYCFG(0), reg);
>  	}
>  
>  	return ret;
> @@ -727,7 +727,7 @@ static int dwc3_gadget_calc_ram_depth(struct dwc3 *dwc)
>  		u32 reg;
>  
>  		/* Check if TXFIFOs start at non-zero addr */
> -		reg = dwc3_readl(dwc->regs, DWC3_GTXFIFOSIZ(0));
> +		reg = dwc3_readl(dwc, DWC3_GTXFIFOSIZ(0));
>  		fifo_0_start = DWC3_GTXFIFOSIZ_TXFSTADDR(reg);
>  
>  		ram_depth -= (fifo_0_start >> 16);
> @@ -755,7 +755,7 @@ void dwc3_gadget_clear_tx_fifos(struct dwc3 *dwc)
>  
>  	/* Read ep0IN related TXFIFO size */
>  	dep = dwc->eps[1];
> -	size = dwc3_readl(dwc->regs, DWC3_GTXFIFOSIZ(0));
> +	size = dwc3_readl(dwc, DWC3_GTXFIFOSIZ(0));
>  	if (DWC3_IP_IS(DWC3))
>  		fifo_depth = DWC3_GTXFIFOSIZ_TXFDEP(size);
>  	else
> @@ -770,10 +770,10 @@ void dwc3_gadget_clear_tx_fifos(struct dwc3 *dwc)
>  
>  		/* Don't change TXFRAMNUM on usb31 version */
>  		size = DWC3_IP_IS(DWC3) ? 0 :
> -			dwc3_readl(dwc->regs, DWC3_GTXFIFOSIZ(num >> 1)) &
> +			dwc3_readl(dwc, DWC3_GTXFIFOSIZ(num >> 1)) &
>  				   DWC31_GTXFIFOSIZ_TXFRAMNUM;
>  
> -		dwc3_writel(dwc->regs, DWC3_GTXFIFOSIZ(num >> 1), size);
> +		dwc3_writel(dwc, DWC3_GTXFIFOSIZ(num >> 1), size);
>  		dep->flags &= ~DWC3_EP_TXFIFO_RESIZED;
>  	}
>  	dwc->num_ep_resized = 0;
> @@ -876,7 +876,7 @@ static int dwc3_gadget_resize_tx_fifos(struct dwc3_ep *dep)
>  	fifo_size++;
>  
>  	/* Check if TXFIFOs start at non-zero addr */
> -	tmp = dwc3_readl(dwc->regs, DWC3_GTXFIFOSIZ(0));
> +	tmp = dwc3_readl(dwc, DWC3_GTXFIFOSIZ(0));
>  	fifo_0_start = DWC3_GTXFIFOSIZ_TXFSTADDR(tmp);
>  
>  	fifo_size |= (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;
>  	}
>  
> -	dwc3_writel(dwc->regs, DWC3_GTXFIFOSIZ(dep->number >> 1), fifo_size);
> +	dwc3_writel(dwc, DWC3_GTXFIFOSIZ(dep->number >> 1), fifo_size);
>  	dep->flags |= DWC3_EP_TXFIFO_RESIZED;
>  	dwc->num_ep_resized++;
>  
> @@ -943,9 +943,9 @@ static int __dwc3_gadget_ep_enable(struct dwc3_ep *dep, unsigned int action)
>  		dep->type = usb_endpoint_type(desc);
>  		dep->flags |= DWC3_EP_ENABLED;
>  
> -		reg = dwc3_readl(dwc->regs, DWC3_DALEPENA);
> +		reg = dwc3_readl(dwc, DWC3_DALEPENA);
>  		reg |= DWC3_DALEPENA_EP(dep->number);
> -		dwc3_writel(dwc->regs, DWC3_DALEPENA, reg);
> +		dwc3_writel(dwc, DWC3_DALEPENA, reg);
>  
>  		dep->trb_dequeue = 0;
>  		dep->trb_enqueue = 0;
> @@ -1080,9 +1080,9 @@ static int __dwc3_gadget_ep_disable(struct dwc3_ep *dep)
>  	if (dep->flags & DWC3_EP_STALL)
>  		__dwc3_gadget_ep_set_halt(dep, 0, false);
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_DALEPENA);
> +	reg = dwc3_readl(dwc, DWC3_DALEPENA);
>  	reg &= ~DWC3_DALEPENA_EP(dep->number);
> -	dwc3_writel(dwc->regs, DWC3_DALEPENA, reg);
> +	dwc3_writel(dwc, DWC3_DALEPENA, reg);
>  
>  	dwc3_remove_requests(dwc, dep, -ESHUTDOWN);
>  
> @@ -1743,7 +1743,7 @@ static int __dwc3_gadget_get_frame(struct dwc3 *dwc)
>  {
>  	u32			reg;
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_DSTS);
> +	reg = dwc3_readl(dwc, DWC3_DSTS);
>  	return DWC3_DSTS_SOFFN(reg);
>  }
>  
> @@ -2351,13 +2351,13 @@ static void dwc3_gadget_enable_linksts_evts(struct dwc3 *dwc, bool set)
>  	if (DWC3_VER_IS_PRIOR(DWC3, 250A))
>  		return;
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_DEVTEN);
> +	reg = dwc3_readl(dwc, DWC3_DEVTEN);
>  	if (set)
>  		reg |= DWC3_DEVTEN_ULSTCNGEN;
>  	else
>  		reg &= ~DWC3_DEVTEN_ULSTCNGEN;
>  
> -	dwc3_writel(dwc->regs, DWC3_DEVTEN, reg);
> +	dwc3_writel(dwc, DWC3_DEVTEN, reg);
>  }
>  
>  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 = dwc3_readl(dwc->regs, DWC3_DSTS);
> +	reg = dwc3_readl(dwc, DWC3_DSTS);
>  
>  	link_state = DWC3_DSTS_USBLNKST(reg);
>  
> @@ -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 = dwc3_readl(dwc->regs, DWC3_DCTL);
> +		reg = dwc3_readl(dwc, DWC3_DCTL);
>  		reg &= ~DWC3_DCTL_ULSTCHNGREQ_MASK;
> -		dwc3_writel(dwc->regs, DWC3_DCTL, reg);
> +		dwc3_writel(dwc, DWC3_DCTL, reg);
>  	}
>  
>  	/*
> @@ -2530,7 +2530,7 @@ static void __dwc3_gadget_set_ssp_rate(struct dwc3 *dwc)
>  	if (ssp_rate == USB_SSP_GEN_UNKNOWN)
>  		ssp_rate = dwc->max_ssp_rate;
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_DCFG);
> +	reg = dwc3_readl(dwc, DWC3_DCFG);
>  	reg &= ~DWC3_DCFG_SPEED_MASK;
>  	reg &= ~DWC3_DCFG_NUMLANES(~0);
>  
> @@ -2543,7 +2543,7 @@ static void __dwc3_gadget_set_ssp_rate(struct dwc3 *dwc)
>  	    dwc->max_ssp_rate != USB_SSP_GEN_2x1)
>  		reg |= DWC3_DCFG_NUMLANES(1);
>  
> -	dwc3_writel(dwc->regs, DWC3_DCFG, reg);
> +	dwc3_writel(dwc, DWC3_DCFG, reg);
>  }
>  
>  static void __dwc3_gadget_set_speed(struct dwc3 *dwc)
> @@ -2561,7 +2561,7 @@ static void __dwc3_gadget_set_speed(struct dwc3 *dwc)
>  		return;
>  	}
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_DCFG);
> +	reg = dwc3_readl(dwc, DWC3_DCFG);
>  	reg &= ~(DWC3_DCFG_SPEED_MASK);
>  
>  	/*
> @@ -2612,7 +2612,7 @@ static void __dwc3_gadget_set_speed(struct dwc3 *dwc)
>  	    speed < USB_SPEED_SUPER_PLUS)
>  		reg &= ~DWC3_DCFG_NUMLANES(~0);
>  
> -	dwc3_writel(dwc->regs, DWC3_DCFG, reg);
> +	dwc3_writel(dwc, DWC3_DCFG, reg);
>  }
>  
>  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 = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0));
> +	reg = dwc3_readl(dwc, DWC3_GUSB2PHYCFG(0));
>  	if (reg & DWC3_GUSB2PHYCFG_SUSPHY) {
>  		saved_config |= DWC3_GUSB2PHYCFG_SUSPHY;
>  		reg &= ~DWC3_GUSB2PHYCFG_SUSPHY;
> @@ -2649,9 +2649,9 @@ static int dwc3_gadget_run_stop(struct dwc3 *dwc, int is_on)
>  	}
>  
>  	if (saved_config)
> -		dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg);
> +		dwc3_writel(dwc, DWC3_GUSB2PHYCFG(0), reg);
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_DCTL);
> +	reg = dwc3_readl(dwc, DWC3_DCTL);
>  	if (is_on) {
>  		if (DWC3_VER_IS_WITHIN(DWC3, ANY, 187A)) {
>  			reg &= ~DWC3_DCTL_TRGTULST_MASK;
> @@ -2675,14 +2675,14 @@ static int dwc3_gadget_run_stop(struct dwc3 *dwc, int is_on)
>  
>  	do {
>  		usleep_range(1000, 2000);
> -		reg = dwc3_readl(dwc->regs, DWC3_DSTS);
> +		reg = dwc3_readl(dwc, DWC3_DSTS);
>  		reg &= DWC3_DSTS_DEVCTRLHLT;
>  	} while (--timeout && !(!is_on ^ !reg));
>  
>  	if (saved_config) {
> -		reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0));
> +		reg = dwc3_readl(dwc, DWC3_GUSB2PHYCFG(0));
>  		reg |= saved_config;
> -		dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg);
> +		dwc3_writel(dwc, DWC3_GUSB2PHYCFG(0), reg);
>  	}
>  
>  	if (!timeout)
> @@ -2858,13 +2858,13 @@ static void dwc3_gadget_enable_irq(struct dwc3 *dwc)
>  	if (!DWC3_VER_IS_PRIOR(DWC3, 230A))
>  		reg |= DWC3_DEVTEN_U3L2L1SUSPEN;
>  
> -	dwc3_writel(dwc->regs, DWC3_DEVTEN, reg);
> +	dwc3_writel(dwc, DWC3_DEVTEN, reg);
>  }
>  
>  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);
>  }
>  
>  static irqreturn_t dwc3_interrupt(int irq, void *_dwc);
> @@ -2905,10 +2905,10 @@ static void dwc3_gadget_setup_nump(struct dwc3 *dwc)
>  	nump = min_t(u32, nump, 16);
>  
>  	/* update NumP */
> -	reg = dwc3_readl(dwc->regs, DWC3_DCFG);
> +	reg = dwc3_readl(dwc, DWC3_DCFG);
>  	reg &= ~DWC3_DCFG_NUMP_MASK;
>  	reg |= nump << DWC3_DCFG_NUMP_SHIFT;
> -	dwc3_writel(dwc->regs, DWC3_DCFG, reg);
> +	dwc3_writel(dwc, DWC3_DCFG, reg);
>  }
>  
>  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);
>  	}
>  
>  	/*
> @@ -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 = dwc3_readl(dwc->regs, DWC3_GRXTHRCFG);
> +	reg = dwc3_readl(dwc, DWC3_GRXTHRCFG);
>  	if (DWC3_IP_IS(DWC3))
>  		reg &= ~DWC3_GRXTHRCFG_PKTCNTSEL;
>  	else
>  		reg &= ~DWC31_GRXTHRCFG_PKTCNTSEL;
>  
> -	dwc3_writel(dwc->regs, DWC3_GRXTHRCFG, reg);
> +	dwc3_writel(dwc, DWC3_GRXTHRCFG, reg);
>  
>  	dwc3_gadget_setup_nump(dwc);
>  
> @@ -2952,15 +2952,15 @@ static int __dwc3_gadget_start(struct dwc3 *dwc)
>  	 * ACK with NumP=0 and PP=0 (for IN direction). This slightly improves
>  	 * the stream performance.
>  	 */
> -	reg = dwc3_readl(dwc->regs, DWC3_DCFG);
> +	reg = dwc3_readl(dwc, DWC3_DCFG);
>  	reg |= DWC3_DCFG_IGNSTRMPP;
> -	dwc3_writel(dwc->regs, DWC3_DCFG, reg);
> +	dwc3_writel(dwc, DWC3_DCFG, reg);
>  
>  	/* Enable MST by default if the device is capable of MST */
>  	if (DWC3_MST_CAPABLE(&dwc->hwparams)) {
> -		reg = dwc3_readl(dwc->regs, DWC3_DCFG1);
> +		reg = dwc3_readl(dwc, DWC3_DCFG1);
>  		reg &= ~DWC3_DCFG1_DIS_MST_ENH;
> -		dwc3_writel(dwc->regs, DWC3_DCFG1, reg);
> +		dwc3_writel(dwc, DWC3_DCFG1, reg);
>  	}
>  
>  	/* Start with SuperSpeed Default */
> @@ -3240,7 +3240,7 @@ static int dwc3_gadget_init_in_endpoint(struct dwc3_ep *dep)
>  	/* MDWIDTH is represented in bits, we need it in bytes */
>  	mdwidth /= 8;
>  
> -	size = dwc3_readl(dwc->regs, DWC3_GTXFIFOSIZ(dep->number >> 1));
> +	size = dwc3_readl(dwc, DWC3_GTXFIFOSIZ(dep->number >> 1));
>  	if (DWC3_IP_IS(DWC3))
>  		size = DWC3_GTXFIFOSIZ_TXFDEP(size);
>  	else
> @@ -3289,7 +3289,7 @@ static int dwc3_gadget_init_out_endpoint(struct dwc3_ep *dep)
>  	mdwidth /= 8;
>  
>  	/* All OUT endpoints share a single RxFIFO space */
> -	size = dwc3_readl(dwc->regs, DWC3_GRXFIFOSIZ(0));
> +	size = dwc3_readl(dwc, DWC3_GRXFIFOSIZ(0));
>  	if (DWC3_IP_IS(DWC3))
>  		size = DWC3_GRXFIFOSIZ_RXFDEP(size);
>  	else
> @@ -3742,9 +3742,9 @@ static bool dwc3_gadget_endpoint_trbs_complete(struct dwc3_ep *dep,
>  				return no_started_trb;
>  		}
>  
> -		reg = dwc3_readl(dwc->regs, DWC3_DCTL);
> +		reg = dwc3_readl(dwc, DWC3_DCTL);
>  		reg |= dwc->u1u2;
> -		dwc3_writel(dwc->regs, DWC3_DCTL, reg);
> +		dwc3_writel(dwc, DWC3_DCTL, reg);
>  
>  		dwc->u1u2 = 0;
>  	}
> @@ -4074,7 +4074,7 @@ static void dwc3_gadget_disconnect_interrupt(struct dwc3 *dwc)
>  
>  	dwc3_gadget_set_link_state(dwc, DWC3_LINK_STATE_RX_DET);
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_DCTL);
> +	reg = dwc3_readl(dwc, DWC3_DCTL);
>  	reg &= ~DWC3_DCTL_INITU1ENA;
>  	reg &= ~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 = true;
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_DCTL);
> +	reg = dwc3_readl(dwc, DWC3_DCTL);
>  	reg &= ~DWC3_DCTL_TSTCTRL_MASK;
>  	dwc3_gadget_dctl_write_safe(dwc, reg);
>  	dwc->test_mode = false;
> @@ -4172,9 +4172,9 @@ static void dwc3_gadget_reset_interrupt(struct dwc3 *dwc)
>  	dwc3_clear_stall_all_ep(dwc);
>  
>  	/* Reset device address to zero */
> -	reg = dwc3_readl(dwc->regs, DWC3_DCFG);
> +	reg = dwc3_readl(dwc, DWC3_DCFG);
>  	reg &= ~(DWC3_DCFG_DEVADDR_MASK);
> -	dwc3_writel(dwc->regs, DWC3_DCFG, reg);
> +	dwc3_writel(dwc, DWC3_DCFG, reg);
>  }
>  
>  static void dwc3_gadget_conndone_interrupt(struct dwc3 *dwc)
> @@ -4188,7 +4188,7 @@ static void dwc3_gadget_conndone_interrupt(struct dwc3 *dwc)
>  	if (!dwc->softconnect)
>  		return;
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_DSTS);
> +	reg = dwc3_readl(dwc, DWC3_DSTS);
>  	speed = reg & DWC3_DSTS_CONNECTSPD;
>  	dwc->speed = speed;
>  
> @@ -4263,11 +4263,11 @@ static void dwc3_gadget_conndone_interrupt(struct dwc3 *dwc)
>  	    !dwc->usb2_gadget_lpm_disable &&
>  	    (speed != DWC3_DSTS_SUPERSPEED) &&
>  	    (speed != DWC3_DSTS_SUPERSPEED_PLUS)) {
> -		reg = dwc3_readl(dwc->regs, DWC3_DCFG);
> +		reg = dwc3_readl(dwc, DWC3_DCFG);
>  		reg |= DWC3_DCFG_LPM_CAP;
> -		dwc3_writel(dwc->regs, DWC3_DCFG, reg);
> +		dwc3_writel(dwc, DWC3_DCFG, reg);
>  
> -		reg = dwc3_readl(dwc->regs, DWC3_DCTL);
> +		reg = dwc3_readl(dwc, DWC3_DCTL);
>  		reg &= ~(DWC3_DCTL_HIRD_THRES_MASK | DWC3_DCTL_L1_HIBER_EN);
>  
>  		reg |= DWC3_DCTL_HIRD_THRES(dwc->hird_threshold |
> @@ -4290,12 +4290,12 @@ static void dwc3_gadget_conndone_interrupt(struct dwc3 *dwc)
>  		dwc3_gadget_dctl_write_safe(dwc, reg);
>  	} else {
>  		if (dwc->usb2_gadget_lpm_disable) {
> -			reg = dwc3_readl(dwc->regs, DWC3_DCFG);
> +			reg = dwc3_readl(dwc, DWC3_DCFG);
>  			reg &= ~DWC3_DCFG_LPM_CAP;
> -			dwc3_writel(dwc->regs, DWC3_DCFG, reg);
> +			dwc3_writel(dwc, DWC3_DCFG, reg);
>  		}
>  
> -		reg = dwc3_readl(dwc->regs, DWC3_DCTL);
> +		reg = dwc3_readl(dwc, DWC3_DCTL);
>  		reg &= ~DWC3_DCTL_HIRD_THRES_MASK;
>  		dwc3_gadget_dctl_write_safe(dwc, reg);
>  	}
> @@ -4401,7 +4401,7 @@ static void dwc3_gadget_linksts_change_interrupt(struct dwc3 *dwc,
>  			switch (dwc->link_state) {
>  			case DWC3_LINK_STATE_U1:
>  			case DWC3_LINK_STATE_U2:
> -				reg = dwc3_readl(dwc->regs, DWC3_DCTL);
> +				reg = dwc3_readl(dwc, DWC3_DCTL);
>  				u1u2 = 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 = IRQ_HANDLED;
>  
>  	/* Unmask interrupt */
> -	dwc3_writel(dwc->regs, DWC3_GEVNTSIZ(0),
> +	dwc3_writel(dwc, DWC3_GEVNTSIZ(0),
>  		    DWC3_GEVNTSIZ_SIZE(evt->length));
>  
>  	evt->flags &= ~DWC3_EVENT_PENDING;
> @@ -4569,8 +4569,8 @@ static irqreturn_t dwc3_process_event_buf(struct dwc3_event_buffer *evt)
>  	wmb();
>  
>  	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);
>  	}
>  
>  	return ret;
> @@ -4619,7 +4619,7 @@ static irqreturn_t dwc3_check_event_buf(struct dwc3_event_buffer *evt)
>  	if (evt->flags & DWC3_EVENT_PENDING)
>  		return IRQ_HANDLED;
>  
> -	count = dwc3_readl(dwc->regs, DWC3_GEVNTCOUNT(0));
> +	count = dwc3_readl(dwc, DWC3_GEVNTCOUNT(0));
>  	count &= DWC3_GEVNTCOUNT_MASK;
>  	if (!count)
>  		return IRQ_NONE;
> @@ -4634,7 +4634,7 @@ static irqreturn_t dwc3_check_event_buf(struct dwc3_event_buffer *evt)
>  	evt->flags |= DWC3_EVENT_PENDING;
>  
>  	/* Mask interrupt */
> -	dwc3_writel(dwc->regs, DWC3_GEVNTSIZ(0),
> +	dwc3_writel(dwc, DWC3_GEVNTSIZ(0),
>  		    DWC3_GEVNTSIZ_INTMASK | DWC3_GEVNTSIZ_SIZE(evt->length));
>  
>  	amount = min(count, evt->length - evt->lpos);
> @@ -4643,7 +4643,7 @@ static irqreturn_t dwc3_check_event_buf(struct dwc3_event_buffer *evt)
>  	if (amount < count)
>  		memcpy(evt->cache, evt->buf, count - amount);
>  
> -	dwc3_writel(dwc->regs, DWC3_GEVNTCOUNT(0), count);
> +	dwc3_writel(dwc, DWC3_GEVNTCOUNT(0), count);
>  
>  	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(struct dwc3_ep *dep)
>  {
>  	u32			res_id;
>  
> -	res_id = dwc3_readl(dep->dwc->regs, DWC3_DEPCMD(dep->number));
> +	res_id = dwc3_readl(dep->dwc, DWC3_DEPCMD(dep->number));
>  	dep->resource_index = DWC3_DEPCMD_GET_RSC_IDX(res_id);
>  }
>  
> @@ -147,7 +147,7 @@ static inline void dwc3_gadget_ep_get_transfer_index(struct dwc3_ep *dep)
>  static inline void dwc3_gadget_dctl_write_safe(struct dwc3 *dwc, u32 value)
>  {
>  	value &= ~DWC3_DCTL_ULSTCHNGREQ_MASK;
> -	dwc3_writel(dwc->regs, DWC3_DCTL, value);
> +	dwc3_writel(dwc, DWC3_DCTL, value);
>  }
>  
>  #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"
>  
> -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 = dwc->regs;
>  
>  	/*
>  	 * We requested the mem region starting from the Globals address
> @@ -37,8 +38,10 @@ static inline u32 dwc3_readl(void __iomem *base, u32 offset)
>  	return value;
>  }
>  
> -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 = 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 += DWC3_ULPI_BASE_DELAY;
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0));
> +	reg = dwc3_readl(dwc, DWC3_GUSB2PHYCFG(0));
>  	if (reg & DWC3_GUSB2PHYCFG_SUSPHY)
>  		usleep_range(1000, 1200);
>  
>  	while (count--) {
>  		ndelay(ns);
> -		reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYACC(0));
> +		reg = 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;
>  
>  	reg = DWC3_GUSB2PHYACC_NEWREGREQ | DWC3_ULPI_ADDR(addr);
> -	dwc3_writel(dwc->regs, DWC3_GUSB2PHYACC(0), reg);
> +	dwc3_writel(dwc, DWC3_GUSB2PHYACC(0), reg);
>  
>  	ret = dwc3_ulpi_busyloop(dwc, addr, true);
>  	if (ret)
>  		return ret;
>  
> -	reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYACC(0));
> +	reg = dwc3_readl(dwc, DWC3_GUSB2PHYACC(0));
>  
>  	return DWC3_GUSB2PHYACC_DATA(reg);
>  }
> @@ -73,7 +73,7 @@ static int dwc3_ulpi_write(struct device *dev, u8 addr, u8 val)
>  
>  	reg = DWC3_GUSB2PHYACC_NEWREGREQ | DWC3_ULPI_ADDR(addr);
>  	reg |= DWC3_GUSB2PHYACC_WRITE | val;
> -	dwc3_writel(dwc->regs, DWC3_GUSB2PHYACC(0), reg);
> +	dwc3_writel(dwc, DWC3_GUSB2PHYACC(0), reg);
>  
>  	return dwc3_ulpi_busyloop(dwc, addr, false);
>  }
> -- 
> 2.34.1
> 

Acked-by: Thinh Nguyen <Thinh.Nguyen@...opsys.com>

Thanks,
Thinh

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ