On Wed, Dec 21, 2011 at 05:27:16PM +0000, Arnd Bergmann wrote:
On Tuesday 20 December 2011, Daniel Vetter wrote:
It also sounds like that at least for proper userspace mmap support we'd need some dma api extensions on at least arm, and that might take a while ...
I think it's actually the opposite -- you'd need dma api extensions on everything else other than arm, which already has dma_mmap_coherent() and dma_mmap_writecombine() for this purpose.
Yeah, that's actually what I wanted to say, but failed at ... Another thing is that at least for i915, _writecombine isn't what we want actually because: - It won't work anyway cause i915 maps stuff cached and does the flushing itself and x86 PAT doesn't support mixed mappings (kinda like arm). - It isn't actually enough, there's another hidden buffer between the memory controller interface and the gpu that i915 manually flushes (because even a readback on a wc mapping doesn't flush things in there).
So I assume we'll have plenty of funny beating out a good api for cpu access ;-)
Cheers, Daniel