drivers: usb: dwc3: sync code with Linux v6.16
PATCH v3 1/1 drivers: usb: dwc3: sync code with Linux v6.16
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/[email protected]/
[2] https://lore.kernel.org/all/[email protected]/
[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
On 6/24/26 2:30 PM, Jens Wiklander wrote:
Hello Jens,
Quoted 24 lines
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/dwc3to 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 thedrivers/usb/dwc3directory 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.
Quoted 2 lines
Note that this is compile-tested only. The CI pipeline on source.denx.de was used as an OK/NOK indicator [3].
This is fine by me, but please do make sure the patches are posted to the ML.
Thanks