[PATCH 1/2] usb: gadget: dwc2: Use usb_ep_set_maxpacket_limit() for fifo sizes

Ilias Apalodimas ilias.apalodimas at linaro.org
Thu Jul 9 11:21:39 CEST 2026


Not really an expert on USB but this seems reasonable

On Fri, 3 Jul 2026 at 16:29, Mattijs Korpershoek <mkorpershoek at kernel.org>
wrote:

> More recent versions of usb_ep_autoconfig() use the maxpacket_limit
> field from struct usb_ep.
>
> This field has been introduced in the linux kernel via commit
> e117e742d310 ("usb: gadget: add "maxpacket_limit" field to struct usb_ep")
> And has been ported to U-Boot via commit
> 747a0a5b387f ("usb: dwc3: gadget: make dwc3 gadget build in uboot")
>
> However, the dwc2 gadget driver was not converted to use
> usb_ep_set_maxpacket_limit().
> This is harmless for now, but the driver will break once
> usb_ep_autoconfig() is updated to a more recent version.
>
> Set maxpacket_limit via the recommended helper function to prepare for
> a core gadget update.
>
> Signed-off-by: Mattijs Korpershoek <mkorpershoek at kernel.org>
> ---
>

 Acked-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>

>  drivers/usb/gadget/dwc2_udc_otg.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/usb/gadget/dwc2_udc_otg.c
> b/drivers/usb/gadget/dwc2_udc_otg.c
> index e475b14b9ac3..9c85383fd62a 100644
> --- a/drivers/usb/gadget/dwc2_udc_otg.c
> +++ b/drivers/usb/gadget/dwc2_udc_otg.c
> @@ -828,7 +828,6 @@ static struct dwc2_udc memory = {
>                 .ep = {
>                         .name = ep0name,
>                         .ops = &dwc2_ep_ops,
> -                       .maxpacket = EP0_FIFO_SIZE,
>                 },
>                 .dev = &memory,
>
> @@ -843,7 +842,6 @@ static struct dwc2_udc memory = {
>                 .ep = {
>                         .name = "ep1in-bulk",
>                         .ops = &dwc2_ep_ops,
> -                       .maxpacket = EP_FIFO_SIZE,
>                 },
>                 .dev = &memory,
>
> @@ -858,7 +856,6 @@ static struct dwc2_udc memory = {
>                 .ep = {
>                         .name = "ep2out-bulk",
>                         .ops = &dwc2_ep_ops,
> -                       .maxpacket = EP_FIFO_SIZE,
>                 },
>                 .dev = &memory,
>
> @@ -873,7 +870,6 @@ static struct dwc2_udc memory = {
>                 .ep = {
>                         .name = "ep3in-int",
>                         .ops = &dwc2_ep_ops,
> -                       .maxpacket = EP_FIFO_SIZE,
>                 },
>                 .dev = &memory,
>
> @@ -893,6 +889,7 @@ int dwc2_udc_probe(struct dwc2_plat_otg_data *pdata)
>  {
>         struct dwc2_udc *dev = &memory;
>         int retval = 0;
> +       int i;
>
>         debug("%s: %p\n", __func__, pdata);
>
> @@ -909,6 +906,10 @@ int dwc2_udc_probe(struct dwc2_plat_otg_data *pdata)
>
>         the_controller = dev;
>
> +       usb_ep_set_maxpacket_limit(&dev->ep[0].ep, EP0_FIFO_SIZE);
> +       for (i = 1; i < DWC2_MAX_ENDPOINTS; i++)
> +               usb_ep_set_maxpacket_limit(&dev->ep[i].ep, EP_FIFO_SIZE);
> +
>         usb_ctrl = memalign(CONFIG_SYS_CACHELINE_SIZE,
>                             ROUND(sizeof(struct usb_ctrlrequest),
>                                   CONFIG_SYS_CACHELINE_SIZE));
>
> --
> 2.54.0
>
>


More information about the U-Boot mailing list