Subject: cache control functions

From: Eric Seppanen <[email-masked]>
Date: Wed, 12 Mar 2003 13:02:14 -0600

I'm writing a driver module, for a pci device that lives in a 405GPr
based system.  I notice that the 405 doesn't seem to have a consistent
cache after the pci device busmasters a bunch of data into SDRAM (or
before it pulls data out), so I think the thing I'm supposed to do is
call (depending on direction) one of these:
 invalidate_dcache_range
 clean_dcache_range
 flush_dcache_range
or what seems to be the equivalent, but cross-platform names
 dma_cache_inv
 dma_cache_wback
 dma_cache_wback_inv
 (these are just macros calling the first three; include/asm-ppc/io.h)

But invalidate_dcache_range and clean_dcache_range are never exported,
so they're unavailable to modules.  (and means that dma_cache_inv and
dma_cache_wback are unavailable as well.)

Is this intentional or an oversight?  I can't see how I can write a
driver for a busmaster device (that will work on a 405) without them.

Eric

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/