All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mattijs Korpershoek <mkorpershoek@baylibre.com>
To: Neil Armstrong <neil.armstrong@linaro.org>,
	Marek Vasut <marex@denx.de>, Tom Rini <trini@konsulko.com>,
	Lukasz Majewski <lukma@denx.de>
Cc: Caleb Connolly <caleb.connolly@linaro.org>,
	u-boot-qcom@groups.io, u-boot@lists.denx.de,
	Neil Armstrong <neil.armstrong@linaro.org>
Subject: Re: [PATCH 1/3] usb: dwc3: allocate setup_buf with dma_alloc_coherent()
Date: Wed, 24 Jul 2024 17:03:18 +0200	[thread overview]
Message-ID: <87r0bi4ytl.fsf@baylibre.com> (raw)
In-Reply-To: <20240719-u-boot-dwc3-gadget-dcache-fixup-v1-1-58a5f026ea8e@linaro.org>

Hi Neil,

Thank you for the patch.

On ven., juil. 19, 2024 at 15:56, Neil Armstrong <neil.armstrong@linaro.org> wrote:

> Also allocate the setup_buf with dma_alloc_coherent() since it's

The subject of the patch says:

"usb: dwc3: allocate setup_buf with dma_alloc_coherent()"

Isn't this line just repeating the title?

> also consumed by the hardware DMA.
>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
>  drivers/usb/dwc3/core.h   | 2 ++
>  drivers/usb/dwc3/ep0.c    | 4 ++--
>  drivers/usb/dwc3/gadget.c | 8 ++++----
>  3 files changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
> index 7374ce950da..ce35460c405 100644
> --- a/drivers/usb/dwc3/core.h
> +++ b/drivers/usb/dwc3/core.h
> @@ -670,6 +670,7 @@ struct dwc3_scratchpad_array {
>   * @ep0_trb: dma address of ep0_trb
>   * @ep0_usb_req: dummy req used while handling STD USB requests
>   * @ep0_bounce_addr: dma address of ep0_bounce
> + * @setup_buf_addr: dma address if setup_buf

if -> of

Both remarks being minor, please add:

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>

>   * @scratch_addr: dma address of scratchbuf
>   * @lock: for synchronizing
>   * @dev: pointer to our struct device
> @@ -757,6 +758,7 @@ struct dwc3 {
>  	dma_addr_t		ep0_trb_addr;
>  	dma_addr_t		ep0_bounce_addr;
>  	dma_addr_t		scratch_addr;
> +	dma_addr_t		setup_buf_addr;
>  	struct dwc3_request	ep0_usb_req;
>  
>  	/* device lock */
> diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c
> index 16b11ce3d9f..0c7e0123368 100644
> --- a/drivers/usb/dwc3/ep0.c
> +++ b/drivers/usb/dwc3/ep0.c
> @@ -381,7 +381,7 @@ static int dwc3_ep0_handle_status(struct dwc3 *dwc,
>  	dep = dwc->eps[0];
>  	dwc->ep0_usb_req.dep = dep;
>  	dwc->ep0_usb_req.request.length = sizeof(*response_pkt);
> -	dwc->ep0_usb_req.request.buf = dwc->setup_buf;
> +	dwc->ep0_usb_req.request.buf = (void *)dwc->setup_buf_addr;
>  	dwc->ep0_usb_req.request.complete = dwc3_ep0_status_cmpl;
>  
>  	return __dwc3_gadget_ep0_queue(dep, &dwc->ep0_usb_req);
> @@ -663,7 +663,7 @@ static int dwc3_ep0_set_sel(struct dwc3 *dwc, struct usb_ctrlrequest *ctrl)
>  	dep = dwc->eps[0];
>  	dwc->ep0_usb_req.dep = dep;
>  	dwc->ep0_usb_req.request.length = dep->endpoint.maxpacket;
> -	dwc->ep0_usb_req.request.buf = dwc->setup_buf;
> +	dwc->ep0_usb_req.request.buf = (void *)dwc->setup_buf_addr;
>  	dwc->ep0_usb_req.request.complete = dwc3_ep0_set_sel_cmpl;
>  
>  	return __dwc3_gadget_ep0_queue(dep, &dwc->ep0_usb_req);
> diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
> index 7d6bcc2627f..d41b590afb8 100644
> --- a/drivers/usb/dwc3/gadget.c
> +++ b/drivers/usb/dwc3/gadget.c
> @@ -2622,8 +2622,8 @@ int dwc3_gadget_init(struct dwc3 *dwc)
>  		goto err1;
>  	}
>  
> -	dwc->setup_buf = memalign(CONFIG_SYS_CACHELINE_SIZE,
> -				  DWC3_EP0_BOUNCE_SIZE);
> +	dwc->setup_buf = dma_alloc_coherent(DWC3_EP0_BOUNCE_SIZE,
> +					(unsigned long *)&dwc->setup_buf_addr);
>  	if (!dwc->setup_buf) {
>  		ret = -ENOMEM;
>  		goto err2;
> @@ -2670,7 +2670,7 @@ err4:
>  	dma_free_coherent(dwc->ep0_bounce);
>  
>  err3:
> -	kfree(dwc->setup_buf);
> +	dma_free_coherent(dwc->setup_buf);
>  
>  err2:
>  	dma_free_coherent(dwc->ep0_trb);
> @@ -2692,7 +2692,7 @@ void dwc3_gadget_exit(struct dwc3 *dwc)
>  
>  	dma_free_coherent(dwc->ep0_bounce);
>  
> -	kfree(dwc->setup_buf);
> +	dma_free_coherent(dwc->setup_buf);
>  
>  	dma_free_coherent(dwc->ep0_trb);
>  
>
> -- 
> 2.34.1

  reply	other threads:[~2024-07-24 15:03 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-19 13:56 [PATCH 0/3] dwc3: gadget: properly fix cache operations Neil Armstrong
2024-07-19 13:56 ` [PATCH 1/3] usb: dwc3: allocate setup_buf with dma_alloc_coherent() Neil Armstrong
2024-07-24 15:03   ` Mattijs Korpershoek [this message]
2024-07-24 15:40     ` Neil Armstrong
2024-07-19 13:56 ` [PATCH 2/3] usb: dwc3: fix dcache flush range calculation Neil Armstrong
2024-07-24 15:19   ` Mattijs Korpershoek
2024-07-19 13:56 ` [PATCH 3/3] usb: dwc3: invalidate dcache on buffer used in interrupt handling Neil Armstrong
2024-07-24 15:20   ` Mattijs Korpershoek

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=87r0bi4ytl.fsf@baylibre.com \
    --to=mkorpershoek@baylibre.com \
    --cc=caleb.connolly@linaro.org \
    --cc=lukma@denx.de \
    --cc=marex@denx.de \
    --cc=neil.armstrong@linaro.org \
    --cc=trini@konsulko.com \
    --cc=u-boot-qcom@groups.io \
    --cc=u-boot@lists.denx.de \
    /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.