-Index: linux-2.6.33/arch/mips/Kconfig
-===================================================================
---- linux-2.6.33.orig/arch/mips/Kconfig 2010-03-03 12:20:01.790293217 +0100
-+++ linux-2.6.33/arch/mips/Kconfig 2010-03-03 12:20:05.554288074 +0100
-@@ -84,6 +84,19 @@
+--- a/arch/mips/Kconfig
++++ b/arch/mips/Kconfig
+@@ -84,6 +84,19 @@ config BCM63XX
help
Support for BCM63XX based boards
config MIPS_COBALT
bool "Cobalt Server"
select CEVT_R4K
-@@ -681,6 +694,7 @@
+@@ -681,6 +694,7 @@ config CAVIUM_OCTEON_REFERENCE_BOARD
endchoice
source "arch/mips/alchemy/Kconfig"
source "arch/mips/bcm63xx/Kconfig"
source "arch/mips/jazz/Kconfig"
-Index: linux-2.6.33/arch/mips/Makefile
-===================================================================
---- linux-2.6.33.orig/arch/mips/Makefile 2010-03-03 12:20:01.742287339 +0100
-+++ linux-2.6.33/arch/mips/Makefile 2010-03-03 12:20:05.554288074 +0100
-@@ -308,6 +308,13 @@
+--- a/arch/mips/Makefile
++++ b/arch/mips/Makefile
+@@ -310,6 +310,13 @@ cflags-$(CONFIG_SOC_AU1X00) += -I$(srctr
#
# Cobalt Server
#
core-$(CONFIG_MIPS_COBALT) += arch/mips/cobalt/
-Index: linux-2.6.33/arch/mips/ar231x/Kconfig
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.33/arch/mips/ar231x/Kconfig 2010-03-03 12:20:05.554288074 +0100
+--- /dev/null
++++ b/arch/mips/ar231x/Kconfig
@@ -0,0 +1,17 @@
+config ATHEROS_AR5312
+ bool "Atheros 5312/2312+ support"
+ select SYS_SUPPORTS_BIG_ENDIAN
+ select GENERIC_GPIO
+ default y
-Index: linux-2.6.33/arch/mips/ar231x/Makefile
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.33/arch/mips/ar231x/Makefile 2010-03-03 12:20:05.554288074 +0100
+--- /dev/null
++++ b/arch/mips/ar231x/Makefile
@@ -0,0 +1,13 @@
+#
+# This file is subject to the terms and conditions of the GNU General Public
+obj-y += board.o prom.o devices.o
+obj-$(CONFIG_ATHEROS_AR5312) += ar5312.o
+obj-$(CONFIG_ATHEROS_AR2315) += ar2315.o
-Index: linux-2.6.33/arch/mips/ar231x/board.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.33/arch/mips/ar231x/board.c 2010-03-03 12:20:22.306286892 +0100
+--- /dev/null
++++ b/arch/mips/ar231x/board.c
@@ -0,0 +1,251 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+}
+
+
-Index: linux-2.6.33/arch/mips/ar231x/prom.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.33/arch/mips/ar231x/prom.c 2010-03-03 12:20:05.554288074 +0100
+--- /dev/null
++++ b/arch/mips/ar231x/prom.c
@@ -0,0 +1,37 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+void __init prom_free_prom_memory(void)
+{
+}
-Index: linux-2.6.33/arch/mips/include/asm/mach-ar231x/ar231x_platform.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.33/arch/mips/include/asm/mach-ar231x/ar231x_platform.h 2010-03-03 12:20:05.554288074 +0100
+--- /dev/null
++++ b/arch/mips/include/asm/mach-ar231x/ar231x_platform.h
@@ -0,0 +1,83 @@
+#ifndef __AR531X_PLATFORM_H
+#define __AR531X_PLATFORM_H
+};
+
+#endif /* __AR531X_PLATFORM_H */
-Index: linux-2.6.33/arch/mips/include/asm/mach-ar231x/cpu-feature-overrides.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.33/arch/mips/include/asm/mach-ar231x/cpu-feature-overrides.h 2010-03-03 12:20:05.554288074 +0100
+--- /dev/null
++++ b/arch/mips/include/asm/mach-ar231x/cpu-feature-overrides.h
@@ -0,0 +1,84 @@
+/*
+ * Atheros SoC specific CPU feature overrides
+/* #define cpu_icache_line_size() ? */
+
+#endif /* __ASM_MACH_ATHEROS_CPU_FEATURE_OVERRIDES_H */
-Index: linux-2.6.33/arch/mips/include/asm/mach-ar231x/dma-coherence.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.33/arch/mips/include/asm/mach-ar231x/dma-coherence.h 2010-03-03 12:20:05.554288074 +0100
+--- /dev/null
++++ b/arch/mips/include/asm/mach-ar231x/dma-coherence.h
@@ -0,0 +1,64 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+}
+
+#endif /* __ASM_MACH_GENERIC_DMA_COHERENCE_H */
-Index: linux-2.6.33/arch/mips/include/asm/mach-ar231x/gpio.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.33/arch/mips/include/asm/mach-ar231x/gpio.h 2010-03-03 12:20:05.554288074 +0100
+--- /dev/null
++++ b/arch/mips/include/asm/mach-ar231x/gpio.h
@@ -0,0 +1,79 @@
+#ifndef _ATHEROS_GPIO_H_
+#define _ATHEROS_GPIO_H_
+#include <asm-generic/gpio.h> /* cansleep wrappers */
+
+#endif
-Index: linux-2.6.33/arch/mips/include/asm/mach-ar231x/reset.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.33/arch/mips/include/asm/mach-ar231x/reset.h 2010-03-03 12:20:05.554288074 +0100
+--- /dev/null
++++ b/arch/mips/include/asm/mach-ar231x/reset.h
@@ -0,0 +1,6 @@
+#ifndef __AR531X_RESET_H
+#define __AR531X_RESET_H
+void ar531x_disable_reset_button(void);
+
+#endif /* __AR531X_RESET_H */
-Index: linux-2.6.33/arch/mips/include/asm/mach-ar231x/war.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.33/arch/mips/include/asm/mach-ar231x/war.h 2010-03-03 12:20:05.558287696 +0100
+--- /dev/null
++++ b/arch/mips/include/asm/mach-ar231x/war.h
@@ -0,0 +1,25 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+#define MIPS34K_MISSED_ITLB_WAR 0
+
+#endif /* __ASM_MIPS_MACH_ATHEROS_WAR_H */
-Index: linux-2.6.33/arch/mips/include/asm/mach-ar231x/ar2315_regs.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.33/arch/mips/include/asm/mach-ar231x/ar2315_regs.h 2010-03-03 12:20:05.558287696 +0100
+--- /dev/null
++++ b/arch/mips/include/asm/mach-ar231x/ar2315_regs.h
@@ -0,0 +1,580 @@
+/*
+ * Register definitions for AR2315+
+#define PCI_DEVICE_MEM_SPACE 0x800000
+
+#endif /* __AR2315_REG_H */
-Index: linux-2.6.33/arch/mips/include/asm/mach-ar231x/ar5312_regs.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.33/arch/mips/include/asm/mach-ar231x/ar5312_regs.h 2010-03-03 12:20:05.558287696 +0100
+--- /dev/null
++++ b/arch/mips/include/asm/mach-ar231x/ar5312_regs.h
@@ -0,0 +1,236 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+
+#endif
+
-Index: linux-2.6.33/arch/mips/ar231x/ar5312.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.33/arch/mips/ar231x/ar5312.c 2010-03-03 12:20:05.558287696 +0100
-@@ -0,0 +1,547 @@
+--- /dev/null
++++ b/arch/mips/ar231x/ar5312.c
+@@ -0,0 +1,549 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
+ if (!ar231x_board.radio)
+ return 0;
+
-+ if (*((u32 *) radio) & AR531X_RADIO0_MASK)
++ if ((*((u32 *) radio) & AR531X_RADIO0_MASK) &&
++ (config->flags & BD_WLAN0))
+ ar231x_add_wmac(0, AR531X_WLAN0,
+ AR5312_IRQ_WLAN0_INTRS);
+
+ break;
+ }
+
-+ if (*((u32 *) radio) & AR531X_RADIO1_MASK)
++ if ((*((u32 *) radio) & AR531X_RADIO1_MASK) &&
++ (config->flags & BD_WLAN1))
+ ar231x_add_wmac(1, AR531X_WLAN1,
+ AR5312_IRQ_WLAN1_INTRS);
+
+ ar231x_serial_setup(KSEG1ADDR(AR531X_UART0), ar5312_sys_frequency());
+}
+
-Index: linux-2.6.33/arch/mips/ar231x/ar2315.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.33/arch/mips/ar231x/ar2315.c 2010-03-03 12:20:05.558287696 +0100
+--- /dev/null
++++ b/arch/mips/ar231x/ar2315.c
@@ -0,0 +1,658 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ _machine_restart = ar2315_restart;
+ ar231x_serial_setup(KSEG1ADDR(AR2315_UART0), ar2315_apb_frequency());
+}
-Index: linux-2.6.33/arch/mips/ar231x/ar2315.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.33/arch/mips/ar231x/ar2315.h 2010-03-03 12:20:05.558287696 +0100
+--- /dev/null
++++ b/arch/mips/ar231x/ar2315.h
@@ -0,0 +1,37 @@
+#ifndef __AR2315_H
+#define __AR2315_H
+#endif
+
+#endif
-Index: linux-2.6.33/arch/mips/ar231x/ar5312.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.33/arch/mips/ar231x/ar5312.h 2010-03-03 12:20:05.558287696 +0100
+--- /dev/null
++++ b/arch/mips/ar231x/ar5312.h
@@ -0,0 +1,38 @@
+#ifndef __AR5312_H
+#define __AR5312_H
+#endif
+
+#endif
-Index: linux-2.6.33/arch/mips/include/asm/mach-ar231x/ar231x.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.33/arch/mips/include/asm/mach-ar231x/ar231x.h 2010-03-03 12:20:05.558287696 +0100
+--- /dev/null
++++ b/arch/mips/include/asm/mach-ar231x/ar231x.h
@@ -0,0 +1,54 @@
+#ifndef __AR531X_H
+#define __AR531X_H
+}
+
+#endif
-Index: linux-2.6.33/arch/mips/ar231x/devices.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.33/arch/mips/ar231x/devices.h 2010-03-03 12:20:05.558287696 +0100
+--- /dev/null
++++ b/arch/mips/ar231x/devices.h
@@ -0,0 +1,37 @@
+#ifndef __AR231X_DEVICES_H
+#define __AR231X_DEVICES_H
+}
+
+#endif
-Index: linux-2.6.33/arch/mips/ar231x/devices.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.33/arch/mips/ar231x/devices.c 2010-03-03 12:20:05.558287696 +0100
+--- /dev/null
++++ b/arch/mips/ar231x/devices.c
@@ -0,0 +1,175 @@
+#include <linux/kernel.h>
+#include <linux/init.h>