Re: [PATCH v2] usb: dwc3: fix dwc3_readl() and dwc3_writel() calls in dwc3_ulpi_setup()

From: Thinh Nguyen

Date: Fri Jun 26 2026 - 18:23:44 EST


On Tue, Jun 23, 2026, Ben Dooks wrote:
> The dwc3_ulpi_setup() calls the register read and write calls with
> dwc3->regs when both these calls take the dwc3 structure directly.
>
> Chnage these two calls to fix the following sparse warning, and
> possibly a nasty bug in the dwc3_ulpi_setup() code:
>
> drivers/usb/dwc3/core.c:796:45: warning: incorrect type in argument 1 (different address spaces)
> drivers/usb/dwc3/core.c:796:45: expected struct dwc3 *dwc
> drivers/usb/dwc3/core.c:796:45: got void [noderef] __iomem *regs
> drivers/usb/dwc3/core.c:798:40: warning: incorrect type in argument 1 (different address spaces)
> drivers/usb/dwc3/core.c:798:40: expected struct dwc3 *dwc
> drivers/usb/dwc3/core.c:798:40: got void [noderef] __iomem *regs
>
> Signed-off-by: Ben Dooks <ben.dooks@xxxxxxxxxxxxxxx>
> ---
> drivers/usb/dwc3/core.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
> index 517aa7f1486d..ceb49f2f8004 100644
> --- a/drivers/usb/dwc3/core.c
> +++ b/drivers/usb/dwc3/core.c
> @@ -789,9 +789,9 @@ static void dwc3_ulpi_setup(struct dwc3 *dwc)
>
> if (dwc->enable_usb2_transceiver_delay) {
> for (index = 0; index < dwc->num_usb2_ports; index++) {
> - reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(index));
> + reg = dwc3_readl(dwc, DWC3_GUSB2PHYCFG(index));
> reg |= DWC3_GUSB2PHYCFG_XCVRDLY;
> - dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(index), reg);
> + dwc3_writel(dwc, DWC3_GUSB2PHYCFG(index), reg);
> }
> }
> }
> --
> 2.37.2.352.g3c44437643
>

Ah! How did we miss this. Thanks for the catch.

Please also add Fixes and Cc stable tags. Add my Ack after you include
the tags:

Acked-by: Thinh Nguyen <Thinh.Nguyen@xxxxxxxxxxxx>

Thanks!
Thinh