diff options
Diffstat (limited to 'arch/mips/mm/c-octeon.c')
-rw-r--r-- | arch/mips/mm/c-octeon.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/mips/mm/c-octeon.c b/arch/mips/mm/c-octeon.c index 94e05e5733c1..0f9c488044d1 100644 --- a/arch/mips/mm/c-octeon.c +++ b/arch/mips/mm/c-octeon.c | |||
@@ -174,7 +174,7 @@ static void octeon_flush_cache_page(struct vm_area_struct *vma, | |||
174 | * Probe Octeon's caches | 174 | * Probe Octeon's caches |
175 | * | 175 | * |
176 | */ | 176 | */ |
177 | static void __devinit probe_octeon(void) | 177 | static void __cpuinit probe_octeon(void) |
178 | { | 178 | { |
179 | unsigned long icache_size; | 179 | unsigned long icache_size; |
180 | unsigned long dcache_size; | 180 | unsigned long dcache_size; |
@@ -183,6 +183,7 @@ static void __devinit probe_octeon(void) | |||
183 | 183 | ||
184 | switch (c->cputype) { | 184 | switch (c->cputype) { |
185 | case CPU_CAVIUM_OCTEON: | 185 | case CPU_CAVIUM_OCTEON: |
186 | case CPU_CAVIUM_OCTEON_PLUS: | ||
186 | config1 = read_c0_config1(); | 187 | config1 = read_c0_config1(); |
187 | c->icache.linesz = 2 << ((config1 >> 19) & 7); | 188 | c->icache.linesz = 2 << ((config1 >> 19) & 7); |
188 | c->icache.sets = 64 << ((config1 >> 22) & 7); | 189 | c->icache.sets = 64 << ((config1 >> 22) & 7); |
@@ -192,10 +193,10 @@ static void __devinit probe_octeon(void) | |||
192 | c->icache.sets * c->icache.ways * c->icache.linesz; | 193 | c->icache.sets * c->icache.ways * c->icache.linesz; |
193 | c->icache.waybit = ffs(icache_size / c->icache.ways) - 1; | 194 | c->icache.waybit = ffs(icache_size / c->icache.ways) - 1; |
194 | c->dcache.linesz = 128; | 195 | c->dcache.linesz = 128; |
195 | if (OCTEON_IS_MODEL(OCTEON_CN3XXX)) | 196 | if (c->cputype == CPU_CAVIUM_OCTEON_PLUS) |
196 | c->dcache.sets = 1; /* CN3XXX has one Dcache set */ | ||
197 | else | ||
198 | c->dcache.sets = 2; /* CN5XXX has two Dcache sets */ | 197 | c->dcache.sets = 2; /* CN5XXX has two Dcache sets */ |
198 | else | ||
199 | c->dcache.sets = 1; /* CN3XXX has one Dcache set */ | ||
199 | c->dcache.ways = 64; | 200 | c->dcache.ways = 64; |
200 | dcache_size = | 201 | dcache_size = |
201 | c->dcache.sets * c->dcache.ways * c->dcache.linesz; | 202 | c->dcache.sets * c->dcache.ways * c->dcache.linesz; |
@@ -235,7 +236,7 @@ static void __devinit probe_octeon(void) | |||
235 | * Setup the Octeon cache flush routines | 236 | * Setup the Octeon cache flush routines |
236 | * | 237 | * |
237 | */ | 238 | */ |
238 | void __devinit octeon_cache_init(void) | 239 | void __cpuinit octeon_cache_init(void) |
239 | { | 240 | { |
240 | extern unsigned long ebase; | 241 | extern unsigned long ebase; |
241 | extern char except_vec2_octeon; | 242 | extern char except_vec2_octeon; |
@@ -305,4 +306,3 @@ asmlinkage void cache_parity_error_octeon_non_recoverable(void) | |||
305 | { | 306 | { |
306 | cache_parity_error_octeon(1); | 307 | cache_parity_error_octeon(1); |
307 | } | 308 | } |
308 | |||