On 07/21/2016 11:53 AM, John Stultz wrote:
After lots of debugging on an occasional DMA ERR issue, I realized
that the desc structures which we point the dma hardware are being
allocated out of regular memory. This means when we fill the desc
structures, that data doesn't always get flushed out to memory by
the time we start the dma transfer, resulting in the dma engine getting
some null values, resulting in a DMA ERR on the first irq.

How about using wmb() flush before start dma to sync desc?

I remember I used dma_pool first, then do some optimization referring Russell's driver.

Thanks

Reply via email to