[PATCH v3] drivers: usb: dwc3: sync code with Linux v6.16

Jens Wiklander jens.wiklander at linaro.org
Wed Jun 24 14:30:25 CEST 2026


Hi,

This is a follow up on my last patchset [1]. I'm addressing feedback on
the previous post. Since there's quite a few patches I've published a
branch instead as requestsed. Last in this mail follows a summary of the
branch (it looks like a pull request, but I'm only reusing a well-known
format, it's not intended as a pull request at this stage).

The DWC3 USB driver was forked from the Linux kernel v3.19-rc1 eleven years
ago by commit 85d5e7075f33 ("usb: dwc3: add dwc3 folder from linux kernel
to u-boot"). Since then, not many kernel changes have been ported back into
U-Boot.

This series synchronizes the DWC3 core with Linux v6.16. To provide 
a clear audit trail and maintain bisectability, I have structured the 
series as follows:

1. Restore to Baseline: The first commit reverts U-Boot-specific changes 
   to drivers/usb/dwc3 to return the directory to a clean v3.19-rc1 state.
2. Milestone Imports: A sequence of 50+ commits follows, each performing 
   a "snapshot" import of the drivers/usb/dwc3 directory for every major 
   kernel version (v3.19 through v6.16). 
3. U-Boot Adaptation: The final commits (based on Jerome's original work [2]) 
   re-introduce the necessary glue code, XHCI/UDC updates, and build fixes 
   required for U-Boot integration.

Note that this is compile-tested only. The CI pipeline on source.denx.de
was used as an OK/NOK indicator [3]. 

Thanks,
Jens

[1] https://lore.kernel.org/u-boot/20260507092843.358908-1-jens.wiklander@linaro.org/
[2] https://lore.kernel.org/all/20251121153812.2076440-1-jerome.forissier@linaro.org/
[3] https://source.denx.de/u-boot/custodians/u-boot-tpm/-/pipelines/30524

RFC v2 -> v3:
- Rebased on v2026.07-rc3
- Configured out a few prints in drivers/usb/gadget/udc/udc-core.c
  to make it build for am335x_evm_defconfig
- Applied provided tags in [1]
- Published as a branch

RFC v1 -> RFC v2:
- Split the v1 ("usb: dwc3: re-import from kernel v6.16-rc7") into ("usb:
  dwc3: restore to original v3.19-rc1 kernel import"),  ("usb: dwc3: import
  from kernel v3.19)..("usb: dwc3: import from kernel v6.16-rc7")


The following changes since commit 76d62273bc8a5dc126ed79ed0fb65e5a97359577:

  Prepare v2026.07-rc3 (2026-05-25 11:05:37 -0600)

are available in the Git repository at:

  https://github.com/jenswikl/u-boot tags/usb-dwc3-sync-v3

for you to fetch changes up to 2e3b14270a8e9dc5e6836f0f011fd97d491a89f7:

  usb: fix build after resync of DWC3 with kernel v6.16 (2026-06-24 09:48:03 +0200)

----------------------------------------------------------------
drivers: usb: dwc3: sync code with Linux v6.16

----------------------------------------------------------------
Jens Wiklander (60):
      usb: dwc3: restore to original v3.19-rc1 kernel import
      usb: dwc3: import from kernel v3.19
      usb: dwc3: import from kernel v4.0
      usb: dwc3: import from kernel v4.1
      usb: dwc3: import from kernel v4.2
      usb: dwc3: import from kernel v4.3
      usb: dwc3: import from kernel v4.4
      usb: dwc3: import from kernel v4.5
      usb: dwc3: import from kernel v4.6
      usb: dwc3: import from kernel v4.7
      usb: dwc3: import from kernel v4.8
      usb: dwc3: import from kernel v4.9
      usb: dwc3: import from kernel v4.10
      usb: dwc3: import from kernel v4.11
      usb: dwc3: import from kernel v4.12
      usb: dwc3: import from kernel v4.13
      usb: dwc3: import from kernel v4.14
      usb: dwc3: import from kernel v4.15
      usb: dwc3: import from kernel v4.16
      usb: dwc3: import from kernel v4.17
      usb: dwc3: import from kernel v4.18
      usb: dwc3: import from kernel v4.19
      usb: dwc3: import from kernel v4.20
      usb: dwc3: import from kernel v5.0
      usb: dwc3: import from kernel v5.1
      usb: dwc3: import from kernel v5.2
      usb: dwc3: import from kernel v5.3
      usb: dwc3: import from kernel v5.4
      usb: dwc3: import from kernel v5.5
      usb: dwc3: import from kernel v5.6
      usb: dwc3: import from kernel v5.7
      usb: dwc3: import from kernel v5.8
      usb: dwc3: import from kernel v5.9
      usb: dwc3: import from kernel v5.10
      usb: dwc3: import from kernel v5.11
      usb: dwc3: import from kernel v5.12
      usb: dwc3: import from kernel v5.13
      usb: dwc3: import from kernel v5.14
      usb: dwc3: import from kernel v5.15
      usb: dwc3: import from kernel v5.16
      usb: dwc3: import from kernel v5.17
      usb: dwc3: import from kernel v5.18
      usb: dwc3: import from kernel v5.19
      usb: dwc3: import from kernel v6.0
      usb: dwc3: import from kernel v6.1
      usb: dwc3: import from kernel v6.2
      usb: dwc3: import from kernel v6.3
      usb: dwc3: import from kernel v6.4
      usb: dwc3: import from kernel v6.5
      usb: dwc3: import from kernel v6.6
      usb: dwc3: import from kernel v6.7
      usb: dwc3: import from kernel v6.8
      usb: dwc3: import from kernel v6.9
      usb: dwc3: import from kernel v6.10
      usb: dwc3: import from kernel v6.11
      usb: dwc3: import from kernel v6.12
      usb: dwc3: import from kernel v6.13
      usb: dwc3: import from kernel v6.14
      usb: dwc3: import from kernel v6.15
      usb: dwc3: import from kernel v6.16

Jerome Forissier (4):
      usb: host: re-import xhci-ext-caps.h from kernel v6.16
      usb: gadget: re-import epautoconf.c from kernel v6.16
      usb: udc: re-import udc-core.c from kernel v6.16
      usb: fix build after resync of DWC3 with kernel v6.16

 drivers/usb/cdns3/ep0.c                |    8 +-
 drivers/usb/common/common.c            |   23 +
 drivers/usb/dwc3/Makefile              |   57 +-
 drivers/usb/dwc3/core.c                | 1710 ++++++++-----
 drivers/usb/dwc3/core.h                | 1060 ++++++--
 drivers/usb/dwc3/debug.h               |  432 ++++
 drivers/usb/dwc3/dwc3-omap.c           |    2 -
 drivers/usb/dwc3/ep0.c                 |  737 +++---
 drivers/usb/dwc3/gadget.c              | 4256 ++++++++++++++++++++++----------
 drivers/usb/dwc3/gadget.h              |  112 +-
 drivers/usb/dwc3/glue.h                |   36 +
 drivers/usb/dwc3/io.h                  |   29 +-
 drivers/usb/dwc3/linux-compat.h        |   16 -
 drivers/usb/dwc3/samsung_usb_phy.c     |   77 -
 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            |  470 ----
 drivers/usb/gadget/composite.c         |    2 +-
 drivers/usb/gadget/dwc2_udc_otg.c      |  174 +-
 drivers/usb/gadget/epautoconf.c        |  289 +--
 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      | 1099 ++++++++-
 drivers/usb/host/xhci-dwc3.c           |    4 +-
 drivers/usb/host/xhci-ext-caps.h       |  158 ++
 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 +
 43 files changed, 7591 insertions(+), 4175 deletions(-)
 create mode 100644 drivers/usb/dwc3/debug.h
 create mode 100644 drivers/usb/dwc3/glue.h
 delete mode 100644 drivers/usb/dwc3/linux-compat.h
 delete mode 100644 drivers/usb/dwc3/samsung_usb_phy.c
 create mode 100644 drivers/usb/host/xhci-ext-caps.h


More information about the U-Boot mailing list