diff options
author | 2008-10-13 15:23:56 +0800 | |
---|---|---|
committer | 2008-10-13 15:23:56 +0800 | |
commit | 58c35bd31f8b577e03d904c214b55b3d91369a85 (patch) | |
tree | 514fa05d6e80f75736d65046ee16ecd91fd4c3a1 /arch/blackfin | |
parent | Blackfin arch: fix a typo in comments (diff) | |
download | linux-58c35bd31f8b577e03d904c214b55b3d91369a85.tar.gz linux-58c35bd31f8b577e03d904c214b55b3d91369a85.tar.bz2 linux-58c35bd31f8b577e03d904c214b55b3d91369a85.zip |
Blackfin arch: introducing bfin_addr_dcachable
This patch introduces bfin_addr_dcachable() predicate, that simply tests is
address in cachable region or not.
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Diffstat (limited to 'arch/blackfin')
-rw-r--r-- | arch/blackfin/include/asm/cplbinit.h | 14 | ||||
-rw-r--r-- | arch/blackfin/kernel/setup.c | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/arch/blackfin/include/asm/cplbinit.h b/arch/blackfin/include/asm/cplbinit.h index 9d23cd1ff7d9..d179b747ff03 100644 --- a/arch/blackfin/include/asm/cplbinit.h +++ b/arch/blackfin/include/asm/cplbinit.h @@ -92,4 +92,18 @@ extern unsigned long reserved_mem_icache_on; extern void generate_cplb_tables(void); +static inline int bfin_addr_dcachable(unsigned long addr) +{ +#ifdef CONFIG_BFIN_DCACHE + if (addr < (_ramend - DMA_UNCACHED_REGION)) + return 1; +#endif + + if (reserved_mem_dcache_on && + addr >= _ramend && addr < physical_mem_end) + return 1; + + return 0; +} + #endif diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c index 7054594831c5..7f35d1046cd8 100644 --- a/arch/blackfin/kernel/setup.c +++ b/arch/blackfin/kernel/setup.c @@ -42,6 +42,7 @@ EXPORT_SYMBOL(memory_start); EXPORT_SYMBOL(memory_end); EXPORT_SYMBOL(physical_mem_end); EXPORT_SYMBOL(_ramend); +EXPORT_SYMBOL(reserved_mem_dcache_on); #ifdef CONFIG_MTD_UCLINUX unsigned long memory_mtd_end, memory_mtd_start, mtd_size; |