All of lore.kernel.org
 help / color / mirror / Atom feed
From: Love Kumar <love.kumar@amd.com>
To: Anders Roxell <anders.roxell@linaro.org>,
	u-boot@lists.u-boot-project.org
Cc: marek.vasut@mailbox.org, trini@konsulko.com,
	ilias.apalodimas@linaro.org,  michal.simek@amd.com,
	lukma@denx.de, alchark@flipper.net, jerome.forissier@arm.com,
	dlechner@baylibre.com, anshuld@ti.com, sjg@chromium.org
Subject: Re: [PATCH v7 00/24] usb: dwc3: part 2, make the resynced code work
Date: Fri, 11 Sep 2026 16:03:39 +0530	[thread overview]
Message-ID: <140c9bb9-756a-4000-acd8-a1893cb98801@amd.com> (raw)
In-Reply-To: <20260824154133.217744-1-anders.roxell@linaro.org>

Hi,

On 8/24/26 9:11 PM, Anders Roxell wrote:
> Hi,
> 
> This is part two of two. It applies on top of part one [5], which resets
> the DWC3 driver and imports it up to Linux v6.16. Part one alone breaks
> the build for every board that enables DWC3. This part adds back the
> U-Boot glue, the XHCI and UDC updates and the build fixes, so the tree
> builds and the gadget works again. It builds on Jerome's work [2].
> 
> The two parts have to go in together.
> 
> The resynced epautoconf matches endpoints on their caps field instead of
> on their name. Five UDC drivers never filled that in, so each one gets a
> patch next to its other fixup: at91_udc, atmel_usba_udc, ci_udc, musb-new
> and mtu3. With those and dwc2, every UDC driver in the tree sets caps.
> 
> Build tested one board per driver: every DWC3 glue layer in the tree,
> dwc2 with and without DM_USB_GADGET, at91_udc, atmel_usba_udc, ci_udc,
> musb-new and mtu3. 17 boards in total.
> 
> DFU is tested on hardware on BeagleBoard-X15, and on BeaglePlay by
> Anshul. ci_udc is tested on an i.MX93 board with ums. The rest is build
> tested only.
> 
> The branch has both parts [4].
> 
> [1] v5: https://lore.kernel.org/u-boot/20260716134305.614278-1-anders.roxell@linaro.org/
> [2] Jerome's adaptation work: https://lore.kernel.org/all/20251121153812.2076440-1-jerome.forissier@linaro.org/
> [3] dwc2 prep: https://lore.kernel.org/all/20260703-usb-prep-dwc3-sync-v1-0-1352bc238c9b@kernel.org/
> [4] https://github.com/roxell/u-boot/tree/usb_dwc3_sync_v7
> [5] part one, subject: [PATCH v7 00/63] usb: dwc3: part 1, reset and
>      import from Linux v6.16
> 
> v6 -> v7:
> - Split the series in two. Tom asked for this, so review and iteration
>    gets easier. Part one is the reset and the imports, part two makes it
>    work.
> - No code changes in these 24 patches.
> - v6 never reached the list in full. My send died in the middle, so the
>    cover letter and the last patches went missing.
> 
> v5 -> v6:
> - Split the "add helpers" patch into a dm patch and a usb phy patch.
>    Mattijs asked for this.
> - Kept the U-Boot dwc3 Makefile instead of the kernel one. This is what
>    Marek meant with glue drivers that are never compiled or used.
> - Brought back samsung_usb_phy.c in an own commit. The restore commit
>    deleted it and nothing added it back, so odroid-xu3 lost its USB 3.0
>    phy setup.
> - Stopped moving functions around in dwc3 gadget.c. Where a function
>    still had to move, the commit message now says why. Mattijs said the
>    last patches were hard to review because of this.
> - Split "fix up musb-new and mtu3" and "fix up xhci and cdns3" into one
>    patch per controller. David asked for this.
> - Set endpoint capabilities in at91_udc, atmel_usba_udc, ci_udc, musb-new
>    and mtu3. Mattijs asked for this on v4, after the VIM3 fastboot
>    regression. Each patch sits next to the other fixup for that driver.
> - at91_udc now calls usb_add_gadget_udc(). Without it udc-core never sees
>    the controller.
> - Enabled async callbacks on bind, and added a cache flush and invalidate
>    around ep0 transfers. Without these no dwc3 gadget enumerates. Anshul
>    found them on BeaglePlay, I hit them on BeagleBoard-X15. DFU works on
>    both now.
> - ci_udc got udc_start() and udc_stop(). udc-core calls udc_start() on
>    bind, ci_udc did not have it, so the board crashed with a synchronous
>    abort when ums started. Found on i.MX93, ums works there now.
> - udc-core got two more fixes while I looked at that. It checks
>    udc_start(), udc_stop() and get_frame() before calling them, they are
>    mandatory in the kernel but not in u-boot. And it reports what
>    usb_gadget_udc_bringup() returned, before it only said "No UDC
>    available".
> - Rebased on current mainline. The ci_udc patch shrank a lot: mainline
>    gained three ci_udc fixes and the old patch deleted the functions they
>    touch.
> - Mattijs' dwc2 endpoint fixes [3] are in mainline now, so this series
>    has no dependencies left.
> 
> Older changes are listed in v5 [1].
> 
> Cheers,
> Anders
> Anders Roxell (24):
>    dm: add helpers needed by the resynced DWC3 code
>    usb: phy: add the usb_phy helpers needed by the resynced DWC3 code
>    usb: gadget: adapt the gadget API after the resync
>    usb: gadget: udc: make udc-core build in u-boot
>    usb: dwc3: make the core driver build in u-boot
>    usb: dwc3: bring back the samsung usb phy driver
>    usb: dwc3: make gadget and ep0 build in u-boot
>    usb: gadget: udc: enable async callbacks on bind
>    usb: dwc3: ep0: flush and invalidate cache around ep0 transfers
>    usb: dwc3: make the am62 glue build in u-boot
>    usb: gadget: ci_udc: move to the udc-core registration
>    usb: gadget: ci_udc: set endpoint capabilities
>    usb: gadget: dwc2_udc_otg: fix up after the resync
>    usb: gadget: fix up the function drivers after the resync
>    usb: gadget: fix up the last UDC drivers after the resync
>    usb: gadget: atmel_usba_udc: set endpoint capabilities
>    usb: gadget: at91_udc: register with udc-core
>    usb: gadget: at91_udc: set endpoint capabilities
>    usb: musb-new: fix up after the resync
>    usb: musb-new: set endpoint capabilities
>    usb: mtu3: fix up after the resync
>    usb: mtu3: set endpoint capabilities
>    usb: host: xhci: fix up after the resync
>    usb: cdns3: fix up after the resync
> 
>   drivers/usb/cdns3/ep0.c                |    8 +-
>   drivers/usb/dwc3/Makefile              |   16 +-
>   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                 |  117 +-
>   drivers/usb/dwc3/gadget.c              |  719 ++--------
>   drivers/usb/dwc3/gadget.h              |    4 +-
>   drivers/usb/dwc3/io.h                  |   36 +-
>   drivers/usb/dwc3/samsung_usb_phy.c     |   77 ++
>   drivers/usb/dwc3/ti_usb_phy.c          |    2 -
>   drivers/usb/gadget/at91_udc.c          |   83 +-
>   drivers/usb/gadget/atmel_usba_udc.c    |  114 +-
>   drivers/usb/gadget/ci_udc.c            |   86 +-
>   drivers/usb/gadget/composite.c         |    2 +-
>   drivers/usb/gadget/dwc2_udc_otg.c      |   86 +-
>   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      |  933 ++-----------
>   drivers/usb/host/xhci-dwc3.c           |    4 +-
>   drivers/usb/mtu3/mtu3_gadget.c         |   10 +
>   drivers/usb/mtu3/mtu3_gadget_ep0.c     |   16 +-
>   drivers/usb/musb-new/musb_gadget.c     |   21 +-
>   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                      |   51 +
>   include/linux/compat.h                 |   15 +
>   include/linux/usb/ch9.h                |   25 +-
>   include/linux/usb/gadget.h             |  529 ++-----
>   include/linux/usb/phy.h                |   56 +
>   39 files changed, 1406 insertions(+), 4007 deletions(-)
>   create mode 100644 drivers/usb/dwc3/samsung_usb_phy.c
> 

I tested this on AMD/Xilinx boards and didn't observe any issues. So:

Tested-by: Love Kumar <love.kumar@amd.com>

Regards,
Love Kumar



      parent reply	other threads:[~2026-09-11 10:34 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-24 15:41 [PATCH v7 00/24] usb: dwc3: part 2, make the resynced code work Anders Roxell
2026-08-24 15:41 ` [PATCH v7 01/24] dm: add helpers needed by the resynced DWC3 code Anders Roxell
2026-09-11 12:16   ` Mattijs Korpershoek
2026-08-24 15:41 ` [PATCH v7 02/24] usb: phy: add the usb_phy " Anders Roxell
2026-09-11 12:17   ` Mattijs Korpershoek
2026-08-24 15:41 ` [PATCH v7 03/24] usb: gadget: adapt the gadget API after the resync Anders Roxell
2026-08-24 15:41 ` [PATCH v7 04/24] usb: gadget: udc: make udc-core build in u-boot Anders Roxell
2026-08-24 15:41 ` [PATCH v7 05/24] usb: dwc3: make the core driver " Anders Roxell
2026-08-24 15:41 ` [PATCH v7 06/24] usb: dwc3: bring back the samsung usb phy driver Anders Roxell
2026-08-24 15:41 ` [PATCH v7 07/24] usb: dwc3: make gadget and ep0 build in u-boot Anders Roxell
2026-08-24 15:41 ` [PATCH v7 08/24] usb: gadget: udc: enable async callbacks on bind Anders Roxell
2026-08-24 15:41 ` [PATCH v7 09/24] usb: dwc3: ep0: flush and invalidate cache around ep0 transfers Anders Roxell
2026-08-24 15:41 ` [PATCH v7 10/24] usb: dwc3: make the am62 glue build in u-boot Anders Roxell
2026-08-24 15:41 ` [PATCH v7 11/24] usb: gadget: ci_udc: move to the udc-core registration Anders Roxell
2026-08-24 15:41 ` [PATCH v7 12/24] usb: gadget: ci_udc: set endpoint capabilities Anders Roxell
2026-08-24 15:41 ` [PATCH v7 13/24] usb: gadget: dwc2_udc_otg: fix up after the resync Anders Roxell
2026-08-24 15:41 ` [PATCH v7 14/24] usb: gadget: fix up the function drivers " Anders Roxell
2026-08-24 15:41 ` [PATCH v7 15/24] usb: gadget: fix up the last UDC " Anders Roxell
2026-08-24 15:41 ` [PATCH v7 16/24] usb: gadget: atmel_usba_udc: set endpoint capabilities Anders Roxell
2026-08-24 15:41 ` [PATCH v7 17/24] usb: gadget: at91_udc: register with udc-core Anders Roxell
2026-08-24 15:41 ` [PATCH v7 18/24] usb: gadget: at91_udc: set endpoint capabilities Anders Roxell
2026-08-24 15:41 ` [PATCH v7 19/24] usb: musb-new: fix up after the resync Anders Roxell
2026-08-24 15:41 ` [PATCH v7 20/24] usb: musb-new: set endpoint capabilities Anders Roxell
2026-08-24 15:41 ` [PATCH v7 21/24] usb: mtu3: fix up after the resync Anders Roxell
2026-08-24 15:41 ` [PATCH v7 22/24] usb: mtu3: set endpoint capabilities Anders Roxell
2026-08-24 15:41 ` [PATCH v7 23/24] usb: host: xhci: fix up after the resync Anders Roxell
2026-08-24 15:41 ` [PATCH v7 24/24] usb: cdns3: " Anders Roxell
2026-08-25  9:42 ` [PATCH v7 00/24] usb: dwc3: part 2, make the resynced code work Anshul Dalal
2026-08-26  8:29   ` Anders Roxell
2026-08-27  7:48     ` Anshul Dalal
2026-08-28 12:26       ` Anders Roxell
2026-09-11 10:33 ` Love Kumar [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=140c9bb9-756a-4000-acd8-a1893cb98801@amd.com \
    --to=love.kumar@amd.com \
    --cc=alchark@flipper.net \
    --cc=anders.roxell@linaro.org \
    --cc=anshuld@ti.com \
    --cc=dlechner@baylibre.com \
    --cc=ilias.apalodimas@linaro.org \
    --cc=jerome.forissier@arm.com \
    --cc=lukma@denx.de \
    --cc=marek.vasut@mailbox.org \
    --cc=michal.simek@amd.com \
    --cc=sjg@chromium.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.u-boot-project.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.