On Wed, 8 Aug 2007, Ralf Baechle wrote:
Yep, but OTOH, the arch code doesn't provide a proper standard way to mmap the pages allocated via dma_alloc_coherent(). That's the missing piece, especially on mips and sparc. ARM has already one.
My wish is implementing dma_mmap_coherent() on all architectures, so that the driver can use it safely without messy ifdefs.
Adding dma_mmap_coherent has been proposed in 2004 but the discussion for some reason went nowhere because it apparently isn't implementable on PARISC due to cache synonyms - on MIPS we'd solve those issues where they exist by using uncached or writethrough mappings, as apropriate.
Hmm, why should everybody suffer from some limitation of some peculiar architecture? I would suggest to let them find an architecture-specific way of addressing the problem -- they surely have a good control over their own code and can implement a workaround that would not impede all the others.
Ralf, do you have an idea about what their issue exactly is?
Maciej