Signed-off-by: Florian Fainelli <florian@openwrt.org>
--
-Index: linux-2.6.30.7/arch/mips/Kconfig
-===================================================================
---- linux-2.6.30.7.orig/arch/mips/Kconfig 2009-09-28 08:21:26.000000000 +0200
-+++ linux-2.6.30.7/arch/mips/Kconfig 2009-09-28 08:21:31.000000000 +0200
-@@ -791,6 +791,17 @@
+--- a/arch/mips/Kconfig
++++ b/arch/mips/Kconfig
+@@ -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
-Index: linux-2.6.30.7/arch/mips/math-emu/Makefile
-===================================================================
---- linux-2.6.30.7.orig/arch/mips/math-emu/Makefile 2009-09-28 08:21:26.000000000 +0200
-+++ linux-2.6.30.7/arch/mips/math-emu/Makefile 2009-09-28 08:21:31.000000000 +0200
+--- a/arch/mips/math-emu/Makefile
++++ b/arch/mips/math-emu/Makefile
@@ -2,12 +2,14 @@
# Makefile for the Linux/MIPS kernel FPU emulation.
#
+ dp_sqrt.o sp_sqrt.o
EXTRA_CFLAGS += -Werror
-Index: linux-2.6.30.7/arch/mips/math-emu/cp1emu.c
-===================================================================
---- linux-2.6.30.7.orig/arch/mips/math-emu/cp1emu.c 2009-09-28 08:21:26.000000000 +0200
-+++ linux-2.6.30.7/arch/mips/math-emu/cp1emu.c 2009-09-28 08:21:31.000000000 +0200
+--- a/arch/mips/math-emu/cp1emu.c
++++ b/arch/mips/math-emu/cp1emu.c
@@ -56,6 +56,12 @@
#endif
#define __mips 4
/* Function which emulates a floating point instruction. */
static int fpu_emu(struct pt_regs *, struct mips_fpu_struct *,
-@@ -66,10 +72,6 @@
+@@ -66,10 +72,6 @@ static int fpux_emu(struct pt_regs *,
struct mips_fpu_struct *, mips_instruction);
#endif
/* Control registers */
#define FPCREG_RID 0 /* $0 = revision id */
-@@ -1273,6 +1275,13 @@
+@@ -1273,6 +1275,13 @@ int fpu_emulator_cop1Handler(struct pt_r
return sig;
}
#ifdef CONFIG_DEBUG_FS
extern struct dentry *mips_debugfs_dir;
-Index: linux-2.6.30.7/arch/mips/math-emu/dsemul.c
-===================================================================
---- linux-2.6.30.7.orig/arch/mips/math-emu/dsemul.c 2009-09-28 08:21:26.000000000 +0200
-+++ linux-2.6.30.7/arch/mips/math-emu/dsemul.c 2009-09-28 08:21:31.000000000 +0200
-@@ -109,6 +109,7 @@
+--- 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, mi
return SIGILL; /* force out of emulation loop */
}
int do_dsemulret(struct pt_regs *xcp)
{
struct emuframe __user *fr;
-@@ -165,3 +166,9 @@
+@@ -165,3 +166,9 @@ int do_dsemulret(struct pt_regs *xcp)
return 1;
}
+ return 0;
+}
+#endif /* CONFIG_MIPS_FPU_EMU */
-Index: linux-2.6.30.7/arch/mips/math-emu/kernel_linkage.c
-===================================================================
---- linux-2.6.30.7.orig/arch/mips/math-emu/kernel_linkage.c 2009-09-28 08:21:26.000000000 +0200
-+++ linux-2.6.30.7/arch/mips/math-emu/kernel_linkage.c 2009-09-28 08:22:36.000000000 +0200
+--- a/arch/mips/math-emu/kernel_linkage.c
++++ b/arch/mips/math-emu/kernel_linkage.c
@@ -29,6 +29,7 @@
#define SIGNALLING_NAN 0x7ff800007ff80000LL
void fpu_emulator_init_fpu(void)
{
static int first = 1;
-@@ -112,4 +113,36 @@
+@@ -112,4 +113,36 @@ int fpu_emulator_restore_context32(struc
return err;
}