[RFC PATCH v2 64/64] usb: fix build after resync of DWC3 with kernel v6.16-rc7

Jens Wiklander jens.wiklander at linaro.org
Thu Jun 25 09:20:16 CEST 2026


Hi,

On Mon, May 11, 2026 at 10:25 AM Anshul Dalal <anshuld at ti.com> wrote:
>
> On Thu May 7, 2026 at 2:58 PM IST, Jens Wiklander wrote:
> > From: Jerome Forissier <jerome.forissier at linaro.org>
> >
> > Fix build errors after the re-sync of the DWC3 driver with the kernel.
> > U-Boot has different needs than the kernel: buses, interrupts, internal
> > APIs (DMA, traces, DT...) so many adaptations are required. This commit
> > re-introduces many of the changes that were done locally after the
> > initial import of the DWC3 code from kernel 3.19-rc1 11 years ago, as
> > well as other fixes. This is compile-tested only.
> >
> > Signed-off-by: Jerome Forissier <jerome.forissier at linaro.org>
> > Signed-off-by: Jens Wiklander <jens.wiklander at linaro.org>
> > ---
> >  drivers/usb/cdns3/ep0.c                |    8 +-
> >  drivers/usb/common/common.c            |   23 +
> >  drivers/usb/dwc3/Makefile              |   57 +-
> >  drivers/usb/dwc3/core.c                | 1761 ++++++------------------
> >  drivers/usb/dwc3/core.h                |   39 +-
> >  drivers/usb/dwc3/dwc3-am62.c           |  424 +-----
> >  drivers/usb/dwc3/dwc3-omap.c           |    2 -
> >  drivers/usb/dwc3/ep0.c                 |  110 +-
> >  drivers/usb/dwc3/gadget.c              |  786 +++--------
> >  drivers/usb/dwc3/gadget.h              |    4 +-
> >  drivers/usb/dwc3/io.h                  |   28 +-
> >  drivers/usb/dwc3/ti_usb_phy.c          |    2 -
> >  drivers/usb/gadget/at91_udc.c          |   46 -
> >  drivers/usb/gadget/atmel_usba_udc.c    |  102 +-
> >  drivers/usb/gadget/ci_udc.c            |  419 ------
> >  drivers/usb/gadget/composite.c         |    2 +-
> >  drivers/usb/gadget/dwc2_udc_otg.c      |  174 +--
> >  drivers/usb/gadget/epautoconf.c        |    2 -
> >  drivers/usb/gadget/ether.c             |   21 +-
> >  drivers/usb/gadget/f_acm.c             |   20 +-
> >  drivers/usb/gadget/f_fastboot.c        |   10 +-
> >  drivers/usb/gadget/f_mass_storage.c    |    5 +-
> >  drivers/usb/gadget/f_rockusb.c         |   11 +-
> >  drivers/usb/gadget/f_sdp.c             |   12 +-
> >  drivers/usb/gadget/f_thor.c            |   19 +-
> >  drivers/usb/gadget/udc/Makefile        |    1 +
> >  drivers/usb/gadget/udc/udc-core.c      | 1021 +++-----------
> >  drivers/usb/host/xhci-dwc3.c           |    4 +-
> >  drivers/usb/host/xhci-exynos5.c        |    2 +-
> >  drivers/usb/mtu3/mtu3_gadget_ep0.c     |   16 +-
> >  drivers/usb/musb-new/musb_gadget_ep0.c |   24 +-
> >  drivers/usb/musb-new/musb_uboot.c      |   39 -
> >  include/dm/device_compat.h             |   13 +
> >  include/dm/read.h                      |   46 +
> >  include/linux/compat.h                 |   15 +
> >  include/linux/usb/ch9.h                |   25 +-
> >  include/linux/usb/gadget.h             |  520 ++-----
> >  include/linux/usb/otg.h                |   10 +
> >  include/linux/usb/phy.h                |   56 +
> >  39 files changed, 1347 insertions(+), 4532 deletions(-)
> >
>
> [snip]
>
> > diff --git a/drivers/usb/dwc3/Makefile b/drivers/usb/dwc3/Makefile
> > index a619cd374fb4..ae1725756c0e 100644
> > --- a/drivers/usb/dwc3/Makefile
> > +++ b/drivers/usb/dwc3/Makefile
> > @@ -1,18 +1,59 @@
> > -# SPDX-License-Identifier: GPL-2.0+
> > -
> > +# SPDX-License-Identifier: GPL-2.0
> >  obj-$(CONFIG_USB_DWC3)                       += dwc3.o
> >
> >  dwc3-y                                       := core.o
> >
> > -obj-$(CONFIG_USB_DWC3_GADGET)                += gadget.o ep0.o
> > +ifneq ($(filter y,$(CONFIG_USB_DWC3_HOST) $(CONFIG_USB_DWC3_DUAL_ROLE)),)
> > +     dwc3-y                          += host.o
> > +endif
> > +
> > +ifneq ($(filter y,$(CONFIG_USB_DWC3_GADGET) $(CONFIG_USB_DWC3_DUAL_ROLE)),)
> > +     dwc3-y                          += gadget.o ep0.o
> > +endif
> > +
> > +ifneq ($(CONFIG_USB_DWC3_DUAL_ROLE),)
> > +     dwc3-y                          += drd.o
> > +endif
> > +
> > +ifneq ($(CONFIG_USB_DWC3_ULPI),)
> > +     dwc3-y                          += ulpi.o
> > +endif
> > +
> > +ifneq ($(CONFIG_DEBUG_FS),)
> > +     dwc3-y                          += debugfs.o
> > +endif
> > +
> > +##
> > +# Platform-specific glue layers go here
> > +#
> > +# NOTICE: Make sure your glue layer doesn't depend on anything
> > +# which is arch-specific and that it compiles on all situations.
> > +#
> > +# We want to keep this requirement in order to be able to compile
> > +# the entire driver (with all its glue layers) on several architectures
> > +# and make sure it compiles fine. This will also help with allmodconfig
> > +# and allyesconfig builds.
> > +##
> >
> > -obj-$(CONFIG_$(PHASE_)USB_DWC3_AM62) += dwc3-am62.o
> > +obj-$(CONFIG_USB_DWC3_AM62)          += dwc3-am62.o
>
> Why is this change being made here? We need dwc3-am62 driver at SPL
> stage for DFU boot on K3 devices. The Kconfig should have a
> corresponding CONFIG_SPL_USB_DWC3_AM62 symbol as well.

I'm sorry, I missed this comment. I'll address it in the next version.

Thanks,
Jens


More information about the U-Boot mailing list