usb: dwc2: Align size of invalidating dcache before starting DMA 74/150274/1 accepted/tizen/4.0/unified/20170915.201918 accepted/tizen/unified/20170915.195826 submit/tizen/20170915.052049 submit/tizen_4.0/20170915.051857
authorSeung-Woo Kim <sw0312.kim@samsung.com>
Mon, 31 Jul 2017 09:08:10 +0000 (18:08 +0900)
committerSeung-Woo Kim <sw0312.kim@samsung.com>
Fri, 15 Sep 2017 03:01:02 +0000 (12:01 +0900)
During using dwc2 usb gadget, if usb message size is too small,
following cache misaligned warning is shown:

   CACHE: Misaligned operation at range [bfdbcb00bfdbcb04]

Align size of invalidating dcache before starting DMA to remove the
warning.

Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
[sw0312.kim: cherry-pick form mainline u-boot to fix runtime cache misaligned warning of thor usb gadget on odroid-u3]

Change-Id: I540394b380200a58fd84a426a2d31b64ef1ba542

drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c

index 0d6d2fb..b6164af 100644 (file)
@@ -111,7 +111,8 @@ static int setdma_rx(struct dwc2_ep *ep, struct dwc2_request *req)
        ctrl =  readl(&reg->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, &reg->out_endp[ep_num].doepdma);
        writel(DOEPT_SIZ_PKT_CNT(pktcnt) | DOEPT_SIZ_XFER_SIZE(length),