aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/mm/c-tx39.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-04-07 17:54:07 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-07 17:54:07 -0400
commitff09e2afe742f3ff52a0c9a660e8a3fe30cf587c (patch)
treeaff06e82c7d653d0b15c1f3cae7f0c8a90ba3d14 /arch/mips/mm/c-tx39.c
parentad3c7e42e33a842cf3b518e21a7f69e167649d8a (diff)
parent9c5a3d729cf430609d091ff610a7db363aafcd47 (diff)
Merge branch 'upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/ralf/upstream-linus
* 'upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/ralf/upstream-linus: [MIPS] Handle aliases in vmalloc correctly.
Diffstat (limited to 'arch/mips/mm/c-tx39.c')
-rw-r--r--arch/mips/mm/c-tx39.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/mips/mm/c-tx39.c b/arch/mips/mm/c-tx39.c
index b09d56981d53..a9f7f1f5e9b4 100644
--- a/arch/mips/mm/c-tx39.c
+++ b/arch/mips/mm/c-tx39.c
@@ -122,6 +122,16 @@ static inline void tx39_blast_icache(void)
122 local_irq_restore(flags); 122 local_irq_restore(flags);
123} 123}
124 124
125static void tx39__flush_cache_vmap(void)
126{
127 tx39_blast_dcache();
128}
129
130static void tx39__flush_cache_vunmap(void)
131{
132 tx39_blast_dcache();
133}
134
125static inline void tx39_flush_cache_all(void) 135static inline void tx39_flush_cache_all(void)
126{ 136{
127 if (!cpu_has_dc_aliases) 137 if (!cpu_has_dc_aliases)
@@ -344,6 +354,8 @@ void __cpuinit tx39_cache_init(void)
344 switch (current_cpu_type()) { 354 switch (current_cpu_type()) {
345 case CPU_TX3912: 355 case CPU_TX3912:
346 /* TX39/H core (writethru direct-map cache) */ 356 /* TX39/H core (writethru direct-map cache) */
357 __flush_cache_vmap = tx39__flush_cache_vmap;
358 __flush_cache_vunmap = tx39__flush_cache_vunmap;
347 flush_cache_all = tx39h_flush_icache_all; 359 flush_cache_all = tx39h_flush_icache_all;
348 __flush_cache_all = tx39h_flush_icache_all; 360 __flush_cache_all = tx39h_flush_icache_all;
349 flush_cache_mm = (void *) tx39h_flush_icache_all; 361 flush_cache_mm = (void *) tx39h_flush_icache_all;
@@ -369,6 +381,9 @@ void __cpuinit tx39_cache_init(void)
369 write_c0_wired(0); /* set 8 on reset... */ 381 write_c0_wired(0); /* set 8 on reset... */
370 /* board-dependent init code may set WBON */ 382 /* board-dependent init code may set WBON */
371 383
384 __flush_cache_vmap = tx39__flush_cache_vmap;
385 __flush_cache_vunmap = tx39__flush_cache_vunmap;
386
372 flush_cache_all = tx39_flush_cache_all; 387 flush_cache_all = tx39_flush_cache_all;
373 __flush_cache_all = tx39___flush_cache_all; 388 __flush_cache_all = tx39___flush_cache_all;
374 flush_cache_mm = tx39_flush_cache_mm; 389 flush_cache_mm = tx39_flush_cache_mm;