diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2005-10-01 08:06:32 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2005-10-29 14:32:32 -0400 |
commit | 02cf2119684e52e97a8a90bd7630386e0f1a250a (patch) | |
tree | fbe051feacc403d7703bf27043ac048b5d2f2369 /arch/mips/mm/cache.c | |
parent | 942d042d17c77febab9af6815b2e77f665d0f9c1 (diff) |
Cleanup the mess in cpu_cache_init.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/mm/cache.c')
-rw-r--r-- | arch/mips/mm/cache.c | 90 |
1 files changed, 40 insertions, 50 deletions
diff --git a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c index 172293b58390..611b48dde737 100644 --- a/arch/mips/mm/cache.c +++ b/arch/mips/mm/cache.c | |||
@@ -104,58 +104,48 @@ void __update_cache(struct vm_area_struct *vma, unsigned long address, | |||
104 | } | 104 | } |
105 | } | 105 | } |
106 | 106 | ||
107 | extern void ld_mmu_r23000(void); | 107 | #define __weak __attribute__((weak)) |
108 | extern void ld_mmu_r4xx0(void); | 108 | |
109 | extern void ld_mmu_tx39(void); | 109 | static char cache_panic[] __initdata = "Yeee, unsupported cache architecture."; |
110 | extern void ld_mmu_r6000(void); | ||
111 | extern void ld_mmu_tfp(void); | ||
112 | extern void ld_mmu_andes(void); | ||
113 | extern void ld_mmu_sb1(void); | ||
114 | 110 | ||
115 | void __init cpu_cache_init(void) | 111 | void __init cpu_cache_init(void) |
116 | { | 112 | { |
117 | if (cpu_has_4ktlb) { | 113 | if (cpu_has_3k_cache) { |
118 | #if defined(CONFIG_CPU_R4X00) || defined(CONFIG_CPU_VR41XX) || \ | 114 | extern void __weak r3k_cache_init(void); |
119 | defined(CONFIG_CPU_R4300) || defined(CONFIG_CPU_R5000) || \ | 115 | |
120 | defined(CONFIG_CPU_NEVADA) || defined(CONFIG_CPU_R5432) || \ | 116 | r3k_cache_init(); |
121 | defined(CONFIG_CPU_R5500) || defined(CONFIG_CPU_MIPS32_R1) || \ | 117 | return; |
122 | defined(CONFIG_CPU_MIPS64_R1) || defined(CONFIG_CPU_TX49XX) || \ | 118 | } |
123 | defined(CONFIG_CPU_RM7000) || defined(CONFIG_CPU_RM9000) | 119 | if (cpu_has_6k_cache) { |
124 | ld_mmu_r4xx0(); | 120 | extern void __weak r6k_cache_init(void); |
125 | #endif | 121 | |
126 | } else switch (current_cpu_data.cputype) { | 122 | r6k_cache_init(); |
127 | #ifdef CONFIG_CPU_R3000 | 123 | return; |
128 | case CPU_R2000: | ||
129 | case CPU_R3000: | ||
130 | case CPU_R3000A: | ||
131 | case CPU_R3081E: | ||
132 | ld_mmu_r23000(); | ||
133 | break; | ||
134 | #endif | ||
135 | #ifdef CONFIG_CPU_TX39XX | ||
136 | case CPU_TX3912: | ||
137 | case CPU_TX3922: | ||
138 | case CPU_TX3927: | ||
139 | ld_mmu_tx39(); | ||
140 | break; | ||
141 | #endif | ||
142 | #ifdef CONFIG_CPU_R10000 | ||
143 | case CPU_R10000: | ||
144 | case CPU_R12000: | ||
145 | ld_mmu_r4xx0(); | ||
146 | break; | ||
147 | #endif | ||
148 | #ifdef CONFIG_CPU_SB1 | ||
149 | case CPU_SB1: | ||
150 | ld_mmu_sb1(); | ||
151 | break; | ||
152 | #endif | ||
153 | |||
154 | case CPU_R8000: | ||
155 | panic("R8000 is unsupported"); | ||
156 | break; | ||
157 | |||
158 | default: | ||
159 | panic("Yeee, unsupported cache architecture."); | ||
160 | } | 124 | } |
125 | if (cpu_has_4k_cache) { | ||
126 | extern void __weak r4k_cache_init(void); | ||
127 | |||
128 | r4k_cache_init(); | ||
129 | return; | ||
130 | } | ||
131 | if (cpu_has_8k_cache) { | ||
132 | extern void __weak r8k_cache_init(void); | ||
133 | |||
134 | r8k_cache_init(); | ||
135 | return; | ||
136 | } | ||
137 | if (cpu_has_tx39_cache) { | ||
138 | extern void __weak tx39_cache_init(void); | ||
139 | |||
140 | tx39_cache_init(); | ||
141 | return; | ||
142 | } | ||
143 | if (cpu_has_sb1_cache) { | ||
144 | extern void __weak sb1_cache_init(void); | ||
145 | |||
146 | sb1_cache_init(); | ||
147 | return; | ||
148 | } | ||
149 | |||
150 | panic(cache_panic); | ||
161 | } | 151 | } |