Signed-off-by: Florian Fainelli <florian@openwrt.org>
--
-diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
-index 65d3b19..a467ee5 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
-@@ -811,6 +811,17 @@ config I8259
+@@ -791,6 +791,17 @@ config I8259
config MIPS_BONITO64
bool
+config MIPS_FPU_EMU
-+ bool
-+ default n
++ bool "Enable FPU emulation"
++ default y
+ help
+ This option allows building a kernel with or without the Algorithmics
+ FPU emulator enabled. Turning off this option results in a kernel which
config MIPS_MSC
bool
-diff --git a/arch/mips/math-emu/Makefile b/arch/mips/math-emu/Makefile
-index d547efd..7fdef24 100644
--- a/arch/mips/math-emu/Makefile
+++ b/arch/mips/math-emu/Makefile
@@ -2,12 +2,14 @@
+ dp_sqrt.o sp_sqrt.o
EXTRA_CFLAGS += -Werror
-diff --git a/arch/mips/math-emu/cp1emu.c b/arch/mips/math-emu/cp1emu.c
-index 890f779..9f4c767 100644
--- a/arch/mips/math-emu/cp1emu.c
+++ b/arch/mips/math-emu/cp1emu.c
@@ -56,6 +56,12 @@
/* Control registers */
#define FPCREG_RID 0 /* $0 = revision id */
-@@ -1273,6 +1275,13 @@ int fpu_emulator_cop1Handler(struct pt_regs *xcp, struct mips_fpu_struct *ctx,
+@@ -1273,6 +1275,13 @@ int fpu_emulator_cop1Handler(struct pt_r
return sig;
}
#ifdef CONFIG_DEBUG_FS
extern struct dentry *mips_debugfs_dir;
-diff --git a/arch/mips/math-emu/dsemul.c b/arch/mips/math-emu/dsemul.c
-index df7b9d9..9b42bfd 100644
--- a/arch/mips/math-emu/dsemul.c
+++ b/arch/mips/math-emu/dsemul.c
-@@ -109,6 +109,7 @@ int mips_dsemul(struct pt_regs *regs, mips_instruction ir, unsigned long cpc)
+@@ -109,6 +109,7 @@ int mips_dsemul(struct pt_regs *regs, mi
return SIGILL; /* force out of emulation loop */
}
+ return 0;
+}
+#endif /* CONFIG_MIPS_FPU_EMU */
-diff --git a/arch/mips/math-emu/kernel_linkage.c b/arch/mips/math-emu/kernel_linkage.c
-index 52e6c58..211a399 100644
--- a/arch/mips/math-emu/kernel_linkage.c
+++ b/arch/mips/math-emu/kernel_linkage.c
@@ -29,6 +29,7 @@
void fpu_emulator_init_fpu(void)
{
static int first = 1;
-@@ -112,4 +113,34 @@ int fpu_emulator_restore_context32(struct sigcontext32 __user *sc)
+@@ -112,4 +113,36 @@ int fpu_emulator_restore_context32(struc
return err;
}
+
+void fpu_emulator_init_fpu(void)
+{
++ printk(KERN_INFO "FPU emulator disabled, make sure your toolchain"
++ "was compiled with software floating point support (soft-float)\n");
+ return;
+}
+