I'm busy at a conference so I've not read the whole thread yet..
On Thu, 28 Apr 2011 16:29:52 +0200 Arnd Bergmann arnd@arndb.de wrote:
I was mistaken there: all drivers that use dma_alloc_noncoherent either use dma_cache_sync() or they do something that is more broken, but they don't do dma_sync_*.
As the DMA-API.txt says, dma_alloc_noncoherent should be used with dma_cache_sync(). You shouldn't use dma_sync* API with a memory returned by dma_alloc_noncoherent().