[PATCH]: 2/2 remove flush_cache_l1/l2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

__flush_cache_all is enough for the uses that flush_cache_l1/l2 had.

Later, Juan.

 build/arch/mips/sgi-ip27/ip27-init.c    |    6 +----
 build/arch/mips64/kernel/mips64_ksyms.c |    5 ----
 build/arch/mips64/kernel/syscall.c      |    2 -
 build/arch/mips64/mm/c-andes.c          |   38 ++++++++++++++------------------
 build/arch/mips64/mm/c-mips64.c         |    3 --
 build/arch/mips64/mm/c-r4k.c            |   15 ------------
 build/arch/mips64/mm/c-sb1.c            |    1 
 build/arch/mips64/mm/init.c             |    2 -
 build/arch/mips64/mm/loadmmu.c          |    5 ----
 build/include/asm-mips64/pgtable.h      |   10 --------
 10 files changed, 23 insertions(+), 64 deletions(-)

diff -puN build/include/asm-mips64/pgtable.h~remove_flush_cache_l12 build/include/asm-mips64/pgtable.h
--- 24/build/include/asm-mips64/pgtable.h~remove_flush_cache_l12	2003-03-13 04:35:38.000000000 +0100
+++ 24-quintela/build/include/asm-mips64/pgtable.h	2003-03-13 04:35:38.000000000 +0100
@@ -41,11 +41,6 @@ extern void (*_flush_icache_page)(struct
 extern void (*_flush_cache_sigtramp)(unsigned long addr);
 extern void (*_flush_icache_all)(void);
 
-/* These suck ...  */
-extern void (*_flush_cache_l2)(void);
-extern void (*_flush_cache_l1)(void);
-
-
 #define flush_page_to_ram(page)		do { } while(0)
 
 #define flush_cache_all()		_flush_cache_all()
@@ -65,7 +60,7 @@ extern void (*_flush_cache_l1)(void);
 #define flush_cache_range(mm,start,end)	do { } while(0)
 #define flush_cache_page(vma,page)	do { } while(0)
 #define flush_dcache_page(page)		do { } while(0)
-#define flush_icache_range(start, end)	_flush_cache_l1()
+#define flush_icache_range(start, end)	_flush_icache_range(start, end)
 #define flush_icache_user_range(vma, page, addr, len) \
 	flush_icache_page((vma), (page))
 #define flush_icache_page(vma, page)	_flush_icache_page(vma, page)
@@ -90,9 +85,6 @@ extern void (*_flush_cache_l1)(void);
 #define flush_icache_all()		do { } while(0)
 #endif
 
-#define flush_cache_l2()		_flush_cache_l2()
-#define flush_cache_l1()		_flush_cache_l1()
-
 /*
  * This flag is used to indicate that the page pointed to by a pte
  * is dirty and requires cleaning before returning it to the user.
diff -puN build/arch/mips64/mm/c-andes.c~remove_flush_cache_l12 build/arch/mips64/mm/c-andes.c
--- 24/build/arch/mips64/mm/c-andes.c~remove_flush_cache_l12	2003-03-13 04:35:38.000000000 +0100
+++ 24-quintela/build/arch/mips64/mm/c-andes.c	2003-03-13 04:45:26.000000000 +0100
@@ -29,28 +29,20 @@ static void andes_flush_cache_l1(void)
 	blast_dcache32(); blast_icache64();
 }
 
-/*
- * This is only used during initialization time. vmalloc() also calls
- * this, but that will be changed pretty soon.
- */
-static void andes_flush_cache_l2_64(void)
-{
-	blast_scache64();
-}
-
-static void andes_flush_cache_l2_128(void)
+static void andes_flush_cache_all(void)
 {
-	blast_scache128();
 }
 
-static void andes_flush_cache_all(void)
+static void andes___flush_cache_all64(void)
 {
+	blast_dcache32(); blast_icache64();
+	blast_scache64();
 }
 
-static void andes___flush_cache_all(void)
+static void andes___flush_cache_all128(void)
 {
-	andes_flush_cache_l1();
-	flush_cache_l2();
+	blast_dcache32(); blast_icache64();
+	blast_scache128();
 }
 
 /*
@@ -81,7 +73,13 @@ static void andes_flush_icache_page128(s
 
 	pfn = (unsigned long)phys_to_virt(page_to_phys(page));
 	blast_scache128_page(pfn);
- }
+}
+
+static void andes_flush_icache_range(unsigned long start,
+	unsigned long end)
+{
+	blast_icache64();
+}
 
 static void andes_flush_cache_sigtramp(unsigned long addr)
 {
@@ -108,17 +106,15 @@ void __init ld_mmu_andes(void)
 	_copy_page = andes_copy_page;
 
 	_flush_cache_all = andes_flush_cache_all;
-	___flush_cache_all = andes___flush_cache_all;
-	_flush_cache_l1 = andes_flush_cache_l1;
 	_flush_cache_sigtramp = andes_flush_cache_sigtramp;
 
 	if (sc_lsize() == 64) {
-		_flush_cache_l2 = andes_flush_cache_l2_64;
+		___flush_cache_all = andes___flush_cache_all64;
 		_flush_icache_page = andes_flush_icache_page64;
 	} else {
-		_flush_cache_l2 = andes_flush_cache_l2_128;
+		___flush_cache_all = andes___flush_cache_all128;
 		_flush_icache_page = andes_flush_icache_page128;
 	}
 
-	flush_cache_l1();
+	__flush_cache_all();
 }
diff -puN build/arch/mips64/mm/c-mips64.c~remove_flush_cache_l12 build/arch/mips64/mm/c-mips64.c
--- 24/build/arch/mips64/mm/c-mips64.c~remove_flush_cache_l12	2003-03-13 04:35:38.000000000 +0100
+++ 24-quintela/build/arch/mips64/mm/c-mips64.c	2003-03-13 04:35:38.000000000 +0100
@@ -713,8 +713,7 @@ void __init ld_mmu_mips64(void)
 	_flush_cache_sigtramp = mips64_flush_cache_sigtramp;
 	_flush_icache_range = mips64_flush_icache_range;	/* Ouch */
 	_flush_icache_all = mips64_flush_icache_all;
-	_flush_cache_l1 = _flush_cache_all;
-	_flush_cache_l2 = _flush_cache_all;
+	_flush_cache_all = _flush_cache_all;
 
 	__flush_cache_all();
 }
diff -puN build/arch/mips64/mm/loadmmu.c~remove_flush_cache_l12 build/arch/mips64/mm/loadmmu.c
--- 24/build/arch/mips64/mm/loadmmu.c~remove_flush_cache_l12	2003-03-13 04:35:38.000000000 +0100
+++ 24-quintela/build/arch/mips64/mm/loadmmu.c	2003-03-13 04:35:38.000000000 +0100
@@ -36,11 +36,6 @@ void (*_flush_icache_range)(unsigned lon
 void (*_flush_icache_page)(struct vm_area_struct *vma, struct page *page);
 void (*_flush_icache_all)(void);
 
-/* MIPS specific cache operations */
-void (*_flush_cache_l2)(void);
-void (*_flush_cache_l1)(void);
-
-
 /* DMA cache operations. */
 void (*_dma_cache_wback_inv)(unsigned long start, unsigned long size);
 void (*_dma_cache_wback)(unsigned long start, unsigned long size);
diff -puN build/arch/mips64/mm/init.c~remove_flush_cache_l12 build/arch/mips64/mm/init.c
--- 24/build/arch/mips64/mm/init.c~remove_flush_cache_l12	2003-03-13 04:35:38.000000000 +0100
+++ 24-quintela/build/arch/mips64/mm/init.c	2003-03-13 04:41:44.000000000 +0100
@@ -114,7 +114,7 @@ int do_check_pgt_cache(int low, int high
 asmlinkage int sys_cacheflush(void *addr, int bytes, int cache)
 {
 	/* XXX Just get it working for now... */
-	flush_cache_l1();
+	__flush_cache_all();
 	return 0;
 }
 
diff -puN build/arch/mips64/kernel/mips64_ksyms.c~remove_flush_cache_l12 build/arch/mips64/kernel/mips64_ksyms.c
--- 24/build/arch/mips64/kernel/mips64_ksyms.c~remove_flush_cache_l12	2003-03-13 04:35:38.000000000 +0100
+++ 24-quintela/build/arch/mips64/kernel/mips64_ksyms.c	2003-03-13 04:35:38.000000000 +0100
@@ -79,11 +79,6 @@ EXPORT_SYMBOL_NOVERS(__strnlen_user_asm)
 /* Networking helper routines. */
 EXPORT_SYMBOL(csum_partial_copy);
 
-/*
- * Functions to control caches.
- */
-EXPORT_SYMBOL(_flush_cache_l1);
-
 #ifdef CONFIG_NONCOHERENT_IO
 EXPORT_SYMBOL(_dma_cache_wback_inv);
 EXPORT_SYMBOL(_dma_cache_inv);
diff -puN build/arch/mips64/kernel/syscall.c~remove_flush_cache_l12 build/arch/mips64/kernel/syscall.c
--- 24/build/arch/mips64/kernel/syscall.c~remove_flush_cache_l12	2003-03-13 04:35:38.000000000 +0100
+++ 24-quintela/build/arch/mips64/kernel/syscall.c	2003-03-13 04:42:29.000000000 +0100
@@ -221,7 +221,7 @@ asmlinkage int sys_sysmips(int cmd, long
 		return 0;
 
 	case FLUSH_CACHE:
-		flush_cache_l2();
+		__flush_cache_all();
 		return 0;
 
 	case MIPS_RDNVRAM:
diff -puN build/arch/mips64/mm/c-r4k.c~remove_flush_cache_l12 build/arch/mips64/mm/c-r4k.c
--- 24/build/arch/mips64/mm/c-r4k.c~remove_flush_cache_l12	2003-03-13 04:35:38.000000000 +0100
+++ 24-quintela/build/arch/mips64/mm/c-r4k.c	2003-03-13 04:35:38.000000000 +0100
@@ -1079,10 +1079,6 @@ static void r4600v20k_flush_cache_sigtra
 #endif
 }
 
-static void r4k_flush_cache_l2(void)
-{
-}
-
 void __update_cache(struct vm_area_struct *vma, unsigned long address,
 	pte_t pte)
 {
@@ -1225,7 +1221,6 @@ static void __init setup_noscache_funcs(
 		_clear_page = r4k_clear_page_d16;
 		_copy_page = r4k_copy_page_d16;
 		_flush_cache_all = r4k_flush_cache_all_d16i16;
-		_flush_cache_l1 = r4k_flush_cache_all_d16i16;
 		_flush_cache_mm = r4k_flush_cache_mm_d16i16;
 		_flush_cache_range = r4k_flush_cache_range_d16i16;
 		_flush_cache_page = r4k_flush_cache_page_d16i16;
@@ -1243,7 +1238,6 @@ static void __init setup_noscache_funcs(
 			_copy_page = r4k_copy_page_d32;
 		}
 		_flush_cache_all = r4k_flush_cache_all_d32i32;
-		_flush_cache_l1 = r4k_flush_cache_all_d32i32;
 		_flush_cache_mm = r4k_flush_cache_mm_d32i32;
 		_flush_cache_range = r4k_flush_cache_range_d32i32;
 		_flush_cache_page = r4k_flush_cache_page_d32i32;
@@ -1265,7 +1259,6 @@ static void __init setup_scache_funcs(vo
 		switch (dc_lsize) {
 		case 16:
 			_flush_cache_all = r4k_flush_cache_all_s16d16i16;
-			_flush_cache_l1 = r4k_flush_cache_all_s16d16i16;
 			_flush_cache_mm = r4k_flush_cache_mm_s16d16i16;
 			_flush_cache_range = r4k_flush_cache_range_s16d16i16;
 			_flush_cache_page = r4k_flush_cache_page_s16d16i16;
@@ -1280,14 +1273,12 @@ static void __init setup_scache_funcs(vo
 		switch (dc_lsize) {
 		case 16:
 			_flush_cache_all = r4k_flush_cache_all_s32d16i16;
-			_flush_cache_l1 = r4k_flush_cache_all_s32d16i16;
 			_flush_cache_mm = r4k_flush_cache_mm_s32d16i16;
 			_flush_cache_range = r4k_flush_cache_range_s32d16i16;
 			_flush_cache_page = r4k_flush_cache_page_s32d16i16;
 			break;
 		case 32:
 			_flush_cache_all = r4k_flush_cache_all_s32d32i32;
-			_flush_cache_l1 = r4k_flush_cache_all_s32d32i32;
 			_flush_cache_mm = r4k_flush_cache_mm_s32d32i32;
 			_flush_cache_range = r4k_flush_cache_range_s32d32i32;
 			_flush_cache_page = r4k_flush_cache_page_s32d32i32;
@@ -1300,14 +1291,12 @@ static void __init setup_scache_funcs(vo
 		switch (dc_lsize) {
 		case 16:
 			_flush_cache_all = r4k_flush_cache_all_s64d16i16;
-			_flush_cache_l1 = r4k_flush_cache_all_s64d16i16;
 			_flush_cache_mm = r4k_flush_cache_mm_s64d16i16;
 			_flush_cache_range = r4k_flush_cache_range_s64d16i16;
 			_flush_cache_page = r4k_flush_cache_page_s64d16i16;
 			break;
 		case 32:
 			_flush_cache_all = r4k_flush_cache_all_s64d32i32;
-			_flush_cache_l1 = r4k_flush_cache_all_s64d32i32;
 			_flush_cache_mm = r4k_flush_cache_mm_s64d32i32;
 			_flush_cache_range = r4k_flush_cache_range_s64d32i32;
 			_flush_cache_page = r4k_flush_cache_page_s64d32i32;
@@ -1320,14 +1309,12 @@ static void __init setup_scache_funcs(vo
 		switch (dc_lsize) {
 		case 16:
 			_flush_cache_all = r4k_flush_cache_all_s128d16i16;
-			_flush_cache_l1 = r4k_flush_cache_all_s128d16i16;
 			_flush_cache_mm = r4k_flush_cache_mm_s128d16i16;
 			_flush_cache_range = r4k_flush_cache_range_s128d16i16;
 			_flush_cache_page = r4k_flush_cache_page_s128d16i16;
 			break;
 		case 32:
 			_flush_cache_all = r4k_flush_cache_all_s128d32i32;
-			_flush_cache_l1 = r4k_flush_cache_all_s128d32i32;
 			_flush_cache_mm = r4k_flush_cache_mm_s128d32i32;
 			_flush_cache_range = r4k_flush_cache_range_s128d32i32;
 			_flush_cache_page = r4k_flush_cache_page_s128d32i32;
@@ -1408,7 +1395,5 @@ void __init ld_mmu_r4xx0(void)
 	_flush_dcache_page = r4k_flush_dcache_page;
 	_flush_icache_range = r4k_flush_icache_range;	/* Ouch */
 
-	_flush_cache_l2 = r4k_flush_cache_l2;
-
 	__flush_cache_all();
 }
diff -puN build/arch/mips/sgi-ip27/ip27-init.c~remove_flush_cache_l12 build/arch/mips/sgi-ip27/ip27-init.c
--- 24/build/arch/mips/sgi-ip27/ip27-init.c~remove_flush_cache_l12	2003-03-13 04:35:38.000000000 +0100
+++ 24-quintela/build/arch/mips/sgi-ip27/ip27-init.c	2003-03-13 04:43:47.000000000 +0100
@@ -332,8 +332,7 @@ void per_hub_init(cnodeid_t cnode)
 			memcpy((void *)(KSEG0 + 0x100), (void *) KSEG0, 0x80);
 			memcpy((void *)(KSEG0 + 0x180), &except_vec3_generic,
 								0x100);
-			flush_cache_l1();
-			flush_cache_l2();
+			__flush_cache_all();
 		}
 #endif
 	}
@@ -432,8 +431,7 @@ void __init start_secondary(void)
 	init_mfhi_war();
 #endif
 	local_flush_tlb_all();
-	flush_cache_l1();
-	flush_cache_l2();
+	__flush_cache_all();
 
 	local_irq_enable();
 #if 0
diff -puN build/arch/mips64/mm/c-sb1.c~remove_flush_cache_l12 build/arch/mips64/mm/c-sb1.c
--- 24/build/arch/mips64/mm/c-sb1.c~remove_flush_cache_l12	2003-03-13 04:35:38.000000000 +0100
+++ 24-quintela/build/arch/mips64/mm/c-sb1.c	2003-03-13 04:35:38.000000000 +0100
@@ -522,7 +522,6 @@ void ld_mmu_sb1(void)
 
 	/* Full flushes */
 	___flush_cache_all = sb1___flush_cache_all;
-	_flush_cache_l1 = sb1___flush_cache_all;
 
 	change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
 	/*

_


-- 
In theory, practice and theory are the same, but in practice they 
are different -- Larry McVoy


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux