[U-Boot] [PATCH] usb: dwc2: Align size of invalidating dcache before starting DMA
Łukasz Majewski
lukma at denx.de
Mon Jul 31 09:33:18 UTC 2017
Hi Seung-Woo,
> During using dwc2 usb gadget, if usb message size is too small,
> following cache misaligned warning is shown:
>
> CACHE: Misaligned operation at range [bfdbcb00, bfdbcb04]
>
> Align size of invalidating dcache before starting DMA to remove the
> warning.
>
> Signed-off-by: Seung-Woo Kim <sw0312.kim at samsung.com>
> ---
> drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c b/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c
> index 0d6d2fb..b6164af 100644
> --- a/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c
> +++ b/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c
> @@ -111,7 +111,8 @@ static int setdma_rx(struct dwc2_ep *ep, struct dwc2_request *req)
> ctrl = readl(®->out_endp[ep_num].doepctl);
>
> invalidate_dcache_range((unsigned long) ep->dma_buf,
> - (unsigned long) ep->dma_buf + ep->len);
> + (unsigned long) ep->dma_buf +
> + ROUND(ep->len, CONFIG_SYS_CACHELINE_SIZE));
>
> writel((unsigned int) ep->dma_buf, ®->out_endp[ep_num].doepdma);
> writel(DOEPT_SIZ_PKT_CNT(pktcnt) | DOEPT_SIZ_XFER_SIZE(length),
>
Reviewed-by: Łukasz Majewski <lukma at denx.de>
--
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
More information about the U-Boot
mailing list