[U-Boot] [PATCH] usb: dwc2: Align size of invalidating dcache before starting DMA

Jaehoon Chung jh80.chung at samsung.com
Mon Aug 7 06:12:06 UTC 2017


On 07/31/2017 06:33 PM, Łukasz Majewski wrote:
> 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(&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),
>>
> 
> Reviewed-by: Łukasz Majewski <lukma at denx.de>

Acked-by: Jaehoon Chung <jh80.chung at samsung.com>

Best Regards,
Jaehoon Chung

> 



More information about the U-Boot mailing list