DMA changes in 2.3.41 - how the f* do I get this working on ARM?

David S. Miller davem en redhat.com
Dom Ene 30 16:28:43 CST 2000


   From: Russell King <rmk en arm.linux.org.uk>
   Date:   Sun, 30 Jan 2000 00:06:15 +0000 (GMT)

   On ARM, there is no such thing as "dma coherent" memory.  Unfortunately, the
   new PCI code (pci_alloc_consistent) appears to assume that there is a way
   of doing this.

You have no mechanism whatsoever to disable the cache on a per-page
basis with MMU mappings?  This would very much surprise me.

   I would have preferred to have heard about the extent of these changes (and
   that the dma_cache_* macros were going to be removed, along with my comments
   marking them with my initials) before it was submitted.

For the actual transfers, you can do the dma_cache_*() calls in the
pci_{un,}map_streaming() calls.

The only place you could possibly need it is for the IDE scatter list
tables, and that would only be if you have _no_ mechanism to disable
the CPU cache in the MMU, which I severely doubt.

   For now, I'm adding the dma_cache_* macros back in, and if I don't hear anything,
   I will be re-submitting that code back to Linus.

   (very pissed)

Actually, don't be pissed, and instead work with us to get your
port working again.  The changes were designed so that all of
the cache flushing hacks could just dissapear and be hidden
within the new interfaces on ports which needed.

I was completely convinced that if all dma mappings were handled
explicitly in the manner they are now, none of that crap would be
needed anymore.

Later,
David S. Miller
davem en redhat.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo en vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



Más información sobre la lista de distribución Ayuda