diff options
Diffstat (limited to 'arch/sh/kernel/cpu/init.c')
| -rw-r--r-- | arch/sh/kernel/cpu/init.c | 28 |
1 files changed, 6 insertions, 22 deletions
diff --git a/arch/sh/kernel/cpu/init.c b/arch/sh/kernel/cpu/init.c index e932ebef4738..89b4b76c0d76 100644 --- a/arch/sh/kernel/cpu/init.c +++ b/arch/sh/kernel/cpu/init.c | |||
| @@ -75,16 +75,11 @@ static void __init expmask_init(void) | |||
| 75 | /* | 75 | /* |
| 76 | * Future proofing. | 76 | * Future proofing. |
| 77 | * | 77 | * |
| 78 | * Disable support for slottable sleep instruction | 78 | * Disable support for slottable sleep instruction, non-nop |
| 79 | * and non-nop instructions in the rte delay slot. | 79 | * instructions in the rte delay slot, and associative writes to |
| 80 | * the memory-mapped cache array. | ||
| 80 | */ | 81 | */ |
| 81 | expmask &= ~(EXPMASK_RTEDS | EXPMASK_BRDSSLP); | 82 | expmask &= ~(EXPMASK_RTEDS | EXPMASK_BRDSSLP | EXPMASK_MMCAW); |
| 82 | |||
| 83 | /* | ||
| 84 | * Enable associative writes to the memory-mapped cache array | ||
| 85 | * until the cache flush ops have been rewritten. | ||
| 86 | */ | ||
| 87 | expmask |= EXPMASK_MMCAW; | ||
| 88 | 83 | ||
| 89 | __raw_writel(expmask, EXPMASK); | 84 | __raw_writel(expmask, EXPMASK); |
| 90 | ctrl_barrier(); | 85 | ctrl_barrier(); |
| @@ -311,12 +306,12 @@ asmlinkage void __init sh_cpu_init(void) | |||
| 311 | if (fpu_disabled) { | 306 | if (fpu_disabled) { |
| 312 | printk("FPU Disabled\n"); | 307 | printk("FPU Disabled\n"); |
| 313 | current_cpu_data.flags &= ~CPU_HAS_FPU; | 308 | current_cpu_data.flags &= ~CPU_HAS_FPU; |
| 314 | disable_fpu(); | ||
| 315 | } | 309 | } |
| 316 | 310 | ||
| 317 | /* FPU initialization */ | 311 | /* FPU initialization */ |
| 312 | disable_fpu(); | ||
| 318 | if ((current_cpu_data.flags & CPU_HAS_FPU)) { | 313 | if ((current_cpu_data.flags & CPU_HAS_FPU)) { |
| 319 | clear_thread_flag(TIF_USEDFPU); | 314 | current_thread_info()->status &= ~TS_USEDFPU; |
| 320 | clear_used_math(); | 315 | clear_used_math(); |
| 321 | } | 316 | } |
| 322 | 317 | ||
| @@ -338,17 +333,6 @@ asmlinkage void __init sh_cpu_init(void) | |||
| 338 | } | 333 | } |
| 339 | #endif | 334 | #endif |
| 340 | 335 | ||
| 341 | /* | ||
| 342 | * Some brain-damaged loaders decided it would be a good idea to put | ||
| 343 | * the UBC to sleep. This causes some issues when it comes to things | ||
| 344 | * like PTRACE_SINGLESTEP or doing hardware watchpoints in GDB. So .. | ||
| 345 | * we wake it up and hope that all is well. | ||
| 346 | */ | ||
| 347 | #ifdef CONFIG_SUPERH32 | ||
| 348 | if (raw_smp_processor_id() == 0) | ||
| 349 | ubc_wakeup(); | ||
| 350 | #endif | ||
| 351 | |||
| 352 | speculative_execution_init(); | 336 | speculative_execution_init(); |
| 353 | expmask_init(); | 337 | expmask_init(); |
| 354 | } | 338 | } |
