diff options
| -rw-r--r-- | arch/mips/kernel/cpu-probe.c | 30 | ||||
| -rw-r--r-- | arch/mips/kernel/setup.c | 21 |
2 files changed, 30 insertions, 21 deletions
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c index be5bb16be4e0..3562b854f2cd 100644 --- a/arch/mips/kernel/cpu-probe.c +++ b/arch/mips/kernel/cpu-probe.c | |||
| @@ -125,6 +125,30 @@ static int __init wait_disable(char *s) | |||
| 125 | 125 | ||
| 126 | __setup("nowait", wait_disable); | 126 | __setup("nowait", wait_disable); |
| 127 | 127 | ||
| 128 | static int __cpuinitdata mips_fpu_disabled; | ||
| 129 | |||
| 130 | static int __init fpu_disable(char *s) | ||
| 131 | { | ||
| 132 | cpu_data[0].options &= ~MIPS_CPU_FPU; | ||
| 133 | mips_fpu_disabled = 1; | ||
| 134 | |||
| 135 | return 1; | ||
| 136 | } | ||
| 137 | |||
| 138 | __setup("nofpu", fpu_disable); | ||
| 139 | |||
| 140 | int __cpuinitdata mips_dsp_disabled; | ||
| 141 | |||
| 142 | static int __init dsp_disable(char *s) | ||
| 143 | { | ||
| 144 | cpu_data[0].ases &= ~MIPS_ASE_DSP; | ||
| 145 | mips_dsp_disabled = 1; | ||
| 146 | |||
| 147 | return 1; | ||
| 148 | } | ||
| 149 | |||
| 150 | __setup("nodsp", dsp_disable); | ||
| 151 | |||
| 128 | void __init check_wait(void) | 152 | void __init check_wait(void) |
| 129 | { | 153 | { |
| 130 | struct cpuinfo_mips *c = ¤t_cpu_data; | 154 | struct cpuinfo_mips *c = ¤t_cpu_data; |
| @@ -982,6 +1006,12 @@ __cpuinit void cpu_probe(void) | |||
| 982 | */ | 1006 | */ |
| 983 | BUG_ON(current_cpu_type() != c->cputype); | 1007 | BUG_ON(current_cpu_type() != c->cputype); |
| 984 | 1008 | ||
| 1009 | if (mips_fpu_disabled) | ||
| 1010 | c->options &= ~MIPS_CPU_FPU; | ||
| 1011 | |||
| 1012 | if (mips_dsp_disabled) | ||
| 1013 | c->ases &= ~MIPS_ASE_DSP; | ||
| 1014 | |||
| 985 | if (c->options & MIPS_CPU_FPU) { | 1015 | if (c->options & MIPS_CPU_FPU) { |
| 986 | c->fpu_id = cpu_get_fpu_id(); | 1016 | c->fpu_id = cpu_get_fpu_id(); |
| 987 | 1017 | ||
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index f9513f9e61d3..85aef3fc6716 100644 --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c | |||
| @@ -569,27 +569,6 @@ void __init setup_arch(char **cmdline_p) | |||
| 569 | plat_smp_setup(); | 569 | plat_smp_setup(); |
| 570 | } | 570 | } |
| 571 | 571 | ||
| 572 | static int __init fpu_disable(char *s) | ||
| 573 | { | ||
| 574 | int i; | ||
| 575 | |||
| 576 | for (i = 0; i < NR_CPUS; i++) | ||
| 577 | cpu_data[i].options &= ~MIPS_CPU_FPU; | ||
| 578 | |||
| 579 | return 1; | ||
| 580 | } | ||
| 581 | |||
| 582 | __setup("nofpu", fpu_disable); | ||
| 583 | |||
| 584 | static int __init dsp_disable(char *s) | ||
| 585 | { | ||
| 586 | cpu_data[0].ases &= ~MIPS_ASE_DSP; | ||
| 587 | |||
| 588 | return 1; | ||
| 589 | } | ||
| 590 | |||
| 591 | __setup("nodsp", dsp_disable); | ||
| 592 | |||
| 593 | unsigned long kernelsp[NR_CPUS]; | 572 | unsigned long kernelsp[NR_CPUS]; |
| 594 | unsigned long fw_arg0, fw_arg1, fw_arg2, fw_arg3; | 573 | unsigned long fw_arg0, fw_arg1, fw_arg2, fw_arg3; |
| 595 | 574 | ||
