aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/storm
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2008-05-19 13:09:29 +0000
committerGabor Juhos <juhosg@openwrt.org>2008-05-19 13:09:29 +0000
commit19d9cdedd463f018f60e7e22c601cdcec64ddf3e (patch)
treef95d887c4c61a8697dd89ac14a1b8a6ded2f739e /target/linux/storm
parent7768b916fe5c580017470e5a1f484aaa138fcb06 (diff)
downloadupstream-19d9cdedd463f018f60e7e22c601cdcec64ddf3e.tar.gz
upstream-19d9cdedd463f018f60e7e22c601cdcec64ddf3e.tar.bz2
upstream-19d9cdedd463f018f60e7e22c601cdcec64ddf3e.zip
refresh kernel patches
SVN-Revision: 11211
Diffstat (limited to 'target/linux/storm')
-rw-r--r--target/linux/storm/patches/1001-arch.patch536
-rw-r--r--target/linux/storm/patches/1002-gmac.patch78
-rw-r--r--target/linux/storm/patches/1003-gmac_one_phy.patch6
-rw-r--r--target/linux/storm/patches/1004-gmac-enable-napi.patch18
-rw-r--r--target/linux/storm/patches/1005-gmac-napi-mask-intrs.patch34
-rw-r--r--target/linux/storm/patches/1006-gmac-napi-tx.patch110
-rw-r--r--target/linux/storm/patches/1020-mtd.patch184
-rw-r--r--target/linux/storm/patches/1021-serial.patch54
-rw-r--r--target/linux/storm/patches/1100-gpio.patch22
9 files changed, 521 insertions, 521 deletions
diff --git a/target/linux/storm/patches/1001-arch.patch b/target/linux/storm/patches/1001-arch.patch
index 8fb9d2101c..caf3207e37 100644
--- a/target/linux/storm/patches/1001-arch.patch
+++ b/target/linux/storm/patches/1001-arch.patch
@@ -1,8 +1,8 @@
-Index: linux-2.6.23.16/arch/arm/Kconfig
+Index: linux-2.6.23.17/arch/arm/Kconfig
===================================================================
---- linux-2.6.23.16.orig/arch/arm/Kconfig 2008-03-13 17:46:04.000791190 +0200
-+++ linux-2.6.23.16/arch/arm/Kconfig 2008-03-13 17:48:24.508798285 +0200
-@@ -220,6 +220,9 @@
+--- linux-2.6.23.17.orig/arch/arm/Kconfig
++++ linux-2.6.23.17/arch/arm/Kconfig
+@@ -220,6 +220,9 @@ config ARCH_EP93XX
help
This enables support for the Cirrus EP93xx series of CPUs.
@@ -12,7 +12,7 @@ Index: linux-2.6.23.16/arch/arm/Kconfig
config ARCH_FOOTBRIDGE
bool "FootBridge"
select FOOTBRIDGE
-@@ -414,6 +417,8 @@
+@@ -414,6 +417,8 @@ source "arch/arm/mach-ep93xx/Kconfig"
source "arch/arm/mach-footbridge/Kconfig"
@@ -21,7 +21,7 @@ Index: linux-2.6.23.16/arch/arm/Kconfig
source "arch/arm/mach-integrator/Kconfig"
source "arch/arm/mach-iop32x/Kconfig"
-@@ -549,6 +554,16 @@
+@@ -549,6 +554,16 @@ config PCI
config PCI_SYSCALL
def_bool PCI
@@ -38,7 +38,7 @@ Index: linux-2.6.23.16/arch/arm/Kconfig
# Select the host bridge type
config PCI_HOST_VIA82C505
bool
-@@ -988,6 +1003,10 @@
+@@ -988,6 +1003,10 @@ if ALIGNMENT_TRAP || !CPU_CP15_MMU
source "drivers/mtd/Kconfig"
endif
@@ -49,7 +49,7 @@ Index: linux-2.6.23.16/arch/arm/Kconfig
source "drivers/parport/Kconfig"
source "drivers/pnp/Kconfig"
-@@ -997,7 +1016,7 @@
+@@ -997,7 +1016,7 @@ source "drivers/block/Kconfig"
if PCMCIA || ARCH_CLPS7500 || ARCH_IOP32X || ARCH_IOP33X || ARCH_IXP4XX \
|| ARCH_L7200 || ARCH_LH7A40X || ARCH_PXA || ARCH_RPC \
|| ARCH_S3C2410 || ARCH_SA1100 || ARCH_SHARK || FOOTBRIDGE \
@@ -58,11 +58,11 @@ Index: linux-2.6.23.16/arch/arm/Kconfig
source "drivers/ide/Kconfig"
endif
-Index: linux-2.6.23.16/arch/arm/Makefile
+Index: linux-2.6.23.17/arch/arm/Makefile
===================================================================
---- linux-2.6.23.16.orig/arch/arm/Makefile 2008-03-13 17:46:04.500819685 +0200
-+++ linux-2.6.23.16/arch/arm/Makefile 2008-03-13 17:48:24.508798285 +0200
-@@ -72,6 +72,7 @@
+--- linux-2.6.23.17.orig/arch/arm/Makefile
++++ linux-2.6.23.17/arch/arm/Makefile
+@@ -72,6 +72,7 @@ tune-$(CONFIG_CPU_ARM920T) :=-mtune=arm9
tune-$(CONFIG_CPU_ARM922T) :=-mtune=arm9tdmi
tune-$(CONFIG_CPU_ARM925T) :=-mtune=arm9tdmi
tune-$(CONFIG_CPU_ARM926T) :=-mtune=arm9tdmi
@@ -70,7 +70,7 @@ Index: linux-2.6.23.16/arch/arm/Makefile
tune-$(CONFIG_CPU_SA110) :=-mtune=strongarm110
tune-$(CONFIG_CPU_SA1100) :=-mtune=strongarm1100
tune-$(CONFIG_CPU_XSCALE) :=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
-@@ -111,6 +112,7 @@
+@@ -111,6 +112,7 @@ endif
machine-$(CONFIG_ARCH_PXA) := pxa
machine-$(CONFIG_ARCH_L7200) := l7200
machine-$(CONFIG_ARCH_INTEGRATOR) := integrator
@@ -78,11 +78,11 @@ Index: linux-2.6.23.16/arch/arm/Makefile
textofs-$(CONFIG_ARCH_CLPS711X) := 0x00028000
machine-$(CONFIG_ARCH_CLPS711X) := clps711x
machine-$(CONFIG_ARCH_IOP32X) := iop32x
-Index: linux-2.6.23.16/arch/arm/boot/compressed/Makefile
+Index: linux-2.6.23.17/arch/arm/boot/compressed/Makefile
===================================================================
---- linux-2.6.23.16.orig/arch/arm/boot/compressed/Makefile 2008-03-13 17:46:04.500819685 +0200
-+++ linux-2.6.23.16/arch/arm/boot/compressed/Makefile 2008-03-13 17:48:24.508798285 +0200
-@@ -19,6 +19,10 @@
+--- linux-2.6.23.17.orig/arch/arm/boot/compressed/Makefile
++++ linux-2.6.23.17/arch/arm/boot/compressed/Makefile
+@@ -19,6 +19,10 @@ ifeq ($(CONFIG_ARCH_SHARK),y)
OBJS += head-shark.o ofw-shark.o
endif
@@ -93,10 +93,10 @@ Index: linux-2.6.23.16/arch/arm/boot/compressed/Makefile
ifeq ($(CONFIG_ARCH_L7200),y)
OBJS += head-l7200.o
endif
-Index: linux-2.6.23.16/arch/arm/boot/compressed/head-sl2312.S
+Index: linux-2.6.23.17/arch/arm/boot/compressed/head-sl2312.S
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/arch/arm/boot/compressed/head-sl2312.S 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/arch/arm/boot/compressed/head-sl2312.S
@@ -0,0 +1,6 @@
+#include <asm/mach-types.h>
+#include <asm/arch/sl2312.h>
@@ -104,10 +104,10 @@ Index: linux-2.6.23.16/arch/arm/boot/compressed/head-sl2312.S
+ .section ".start", "ax"
+ mov r7, #MACH_TYPE_SL2312
+
-Index: linux-2.6.23.16/arch/arm/boot/compressed/head.S
+Index: linux-2.6.23.17/arch/arm/boot/compressed/head.S
===================================================================
---- linux-2.6.23.16.orig/arch/arm/boot/compressed/head.S 2008-03-13 17:46:04.500819685 +0200
-+++ linux-2.6.23.16/arch/arm/boot/compressed/head.S 2008-03-13 17:48:24.508798285 +0200
+--- linux-2.6.23.17.orig/arch/arm/boot/compressed/head.S
++++ linux-2.6.23.17/arch/arm/boot/compressed/head.S
@@ -57,6 +57,17 @@
mov \rb, #0x50000000
add \rb, \rb, #0x4000 * CONFIG_S3C_LOWLEVEL_UART_PORT
@@ -126,7 +126,7 @@ Index: linux-2.6.23.16/arch/arm/boot/compressed/head.S
#else
.macro loadsp, rb
addruart \rb
-@@ -116,7 +127,28 @@
+@@ -116,7 +127,28 @@ start:
.rept 8
mov r0, r0
.endr
@@ -156,7 +156,7 @@ Index: linux-2.6.23.16/arch/arm/boot/compressed/head.S
b 1f
.word 0x016f2818 @ Magic numbers to help the loader
.word start @ absolute load/run zImage address
-@@ -458,6 +490,39 @@
+@@ -458,6 +490,39 @@ __armv7_mmu_cache_on:
mcr p15, 0, r0, c7, c5, 4 @ ISB
mov pc, r12
@@ -196,7 +196,7 @@ Index: linux-2.6.23.16/arch/arm/boot/compressed/head.S
__arm6_mmu_cache_on:
mov r12, lr
bl __setup_mmu
-@@ -625,6 +690,16 @@
+@@ -625,6 +690,16 @@ proc_types:
@ These match on the architecture ID
@@ -213,7 +213,7 @@ Index: linux-2.6.23.16/arch/arm/boot/compressed/head.S
.word 0x00020000 @ ARMv4T
.word 0x000f0000
b __armv4_mmu_cache_on
-@@ -712,6 +787,23 @@
+@@ -712,6 +787,23 @@ __armv7_mmu_cache_off:
mcr p15, 0, r0, c8, c7, 0 @ invalidate whole TLB
mov pc, r12
@@ -237,7 +237,7 @@ Index: linux-2.6.23.16/arch/arm/boot/compressed/head.S
__arm6_mmu_cache_off:
mov r0, #0x00000030 @ ARM6 control reg.
b __armv3_mmu_cache_off
-@@ -759,6 +851,17 @@
+@@ -759,6 +851,17 @@ __armv4_mpu_cache_flush:
mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr
@@ -255,10 +255,10 @@ Index: linux-2.6.23.16/arch/arm/boot/compressed/head.S
__armv6_mmu_cache_flush:
mov r1, #0
-Index: linux-2.6.23.16/arch/arm/boot/compressed/it8712.h
+Index: linux-2.6.23.17/arch/arm/boot/compressed/it8712.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/arch/arm/boot/compressed/it8712.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/arch/arm/boot/compressed/it8712.h
@@ -0,0 +1,25 @@
+
+#ifndef __IT8712_H__
@@ -285,11 +285,11 @@ Index: linux-2.6.23.16/arch/arm/boot/compressed/it8712.h
+char LPCGetConfig(char LdnNumber, char Index);
+
+#endif
-Index: linux-2.6.23.16/arch/arm/boot/compressed/misc.c
+Index: linux-2.6.23.17/arch/arm/boot/compressed/misc.c
===================================================================
---- linux-2.6.23.16.orig/arch/arm/boot/compressed/misc.c 2008-03-13 17:46:04.500819685 +0200
-+++ linux-2.6.23.16/arch/arm/boot/compressed/misc.c 2008-03-13 17:48:24.508798285 +0200
-@@ -30,7 +30,7 @@
+--- linux-2.6.23.17.orig/arch/arm/boot/compressed/misc.c
++++ linux-2.6.23.17/arch/arm/boot/compressed/misc.c
+@@ -30,7 +30,7 @@ static void putstr(const char *ptr);
#include <asm/arch/uncompress.h>
#ifdef CONFIG_DEBUG_ICEDCC
@@ -298,7 +298,7 @@ Index: linux-2.6.23.16/arch/arm/boot/compressed/misc.c
#ifdef CONFIG_CPU_V6
static void icedcc_putc(int ch)
-@@ -69,6 +69,7 @@
+@@ -69,6 +69,7 @@ static void icedcc_putc(int ch)
#define flush() do { } while (0)
#endif
@@ -306,7 +306,7 @@ Index: linux-2.6.23.16/arch/arm/boot/compressed/misc.c
static void putstr(const char *ptr)
{
char c;
-@@ -81,11 +82,36 @@
+@@ -81,11 +82,36 @@ static void putstr(const char *ptr)
flush();
}
@@ -343,7 +343,7 @@ Index: linux-2.6.23.16/arch/arm/boot/compressed/misc.c
/*
* Optimised C version of memzero for the ARM.
*/
-@@ -346,6 +372,9 @@
+@@ -346,6 +372,9 @@ ulg
decompress_kernel(ulg output_start, ulg free_mem_ptr_p, ulg free_mem_ptr_end_p,
int arch_id)
{
@@ -353,7 +353,7 @@ Index: linux-2.6.23.16/arch/arm/boot/compressed/misc.c
output_data = (uch *)output_start; /* Points to kernel start */
free_mem_ptr = free_mem_ptr_p;
free_mem_ptr_end = free_mem_ptr_end_p;
-@@ -353,6 +382,33 @@
+@@ -353,6 +382,33 @@ decompress_kernel(ulg output_start, ulg
arch_decomp_setup();
@@ -387,7 +387,7 @@ Index: linux-2.6.23.16/arch/arm/boot/compressed/misc.c
makecrc();
putstr("Uncompressing Linux...");
gunzip();
-@@ -374,4 +430,119 @@
+@@ -374,4 +430,119 @@ int main()
return 0;
}
#endif
@@ -507,10 +507,10 @@ Index: linux-2.6.23.16/arch/arm/boot/compressed/misc.c
+
+#endif
-Index: linux-2.6.23.16/arch/arm/kernel/entry-armv.S
+Index: linux-2.6.23.17/arch/arm/kernel/entry-armv.S
===================================================================
---- linux-2.6.23.16.orig/arch/arm/kernel/entry-armv.S 2008-03-13 17:46:04.500819685 +0200
-+++ linux-2.6.23.16/arch/arm/kernel/entry-armv.S 2008-03-13 17:48:24.508798285 +0200
+--- linux-2.6.23.17.orig/arch/arm/kernel/entry-armv.S
++++ linux-2.6.23.17/arch/arm/kernel/entry-armv.S
@@ -18,6 +18,8 @@
#include <asm/memory.h>
#include <asm/glue.h>
@@ -520,10 +520,10 @@ Index: linux-2.6.23.16/arch/arm/kernel/entry-armv.S
#include <asm/arch/entry-macro.S>
#include <asm/thread_notify.h>
-Index: linux-2.6.23.16/arch/arm/kernel/irq.c
+Index: linux-2.6.23.17/arch/arm/kernel/irq.c
===================================================================
---- linux-2.6.23.16.orig/arch/arm/kernel/irq.c 2008-03-13 17:46:04.500819685 +0200
-+++ linux-2.6.23.16/arch/arm/kernel/irq.c 2008-03-13 17:48:24.508798285 +0200
+--- linux-2.6.23.17.orig/arch/arm/kernel/irq.c
++++ linux-2.6.23.17/arch/arm/kernel/irq.c
@@ -40,6 +40,8 @@
#include <asm/system.h>
#include <asm/mach/time.h>
@@ -533,7 +533,7 @@ Index: linux-2.6.23.16/arch/arm/kernel/irq.c
/*
* No architecture-specific irq_finish function defined in arm/arch/irqs.h.
*/
-@@ -111,8 +113,11 @@
+@@ -111,8 +113,11 @@ static struct irq_desc bad_irq_desc = {
asmlinkage void __exception asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
{
struct pt_regs *old_regs = set_irq_regs(regs);
@@ -546,11 +546,11 @@ Index: linux-2.6.23.16/arch/arm/kernel/irq.c
/*
* Some hardware gives randomly wrong interrupts. Rather
* than crashing, do something sensible.
-Index: linux-2.6.23.16/arch/arm/kernel/process.c
+Index: linux-2.6.23.17/arch/arm/kernel/process.c
===================================================================
---- linux-2.6.23.16.orig/arch/arm/kernel/process.c 2008-03-13 17:46:04.500819685 +0200
-+++ linux-2.6.23.16/arch/arm/kernel/process.c 2008-03-13 17:48:24.508798285 +0200
-@@ -117,7 +117,7 @@
+--- linux-2.6.23.17.orig/arch/arm/kernel/process.c
++++ linux-2.6.23.17/arch/arm/kernel/process.c
+@@ -117,7 +117,7 @@ void arm_machine_restart(char mode)
void (*pm_idle)(void);
EXPORT_SYMBOL(pm_idle);
@@ -559,7 +559,7 @@ Index: linux-2.6.23.16/arch/arm/kernel/process.c
EXPORT_SYMBOL(pm_power_off);
void (*arm_pm_restart)(char str) = arm_machine_restart;
-@@ -188,13 +188,37 @@
+@@ -188,13 +188,37 @@ __setup("reboot=", reboot_setup);
void machine_halt(void)
{
@@ -598,11 +598,11 @@ Index: linux-2.6.23.16/arch/arm/kernel/process.c
}
void machine_restart(char * __unused)
-Index: linux-2.6.23.16/arch/arm/kernel/time.c
+Index: linux-2.6.23.17/arch/arm/kernel/time.c
===================================================================
---- linux-2.6.23.16.orig/arch/arm/kernel/time.c 2008-03-13 17:46:04.500819685 +0200
-+++ linux-2.6.23.16/arch/arm/kernel/time.c 2008-03-13 17:48:24.508798285 +0200
-@@ -502,8 +502,13 @@
+--- linux-2.6.23.17.orig/arch/arm/kernel/time.c
++++ linux-2.6.23.17/arch/arm/kernel/time.c
+@@ -502,8 +502,13 @@ static int __init timer_init_sysfs(void)
device_initcall(timer_init_sysfs);
@@ -616,10 +616,10 @@ Index: linux-2.6.23.16/arch/arm/kernel/time.c
#ifndef CONFIG_GENERIC_TIME
if (system_timer->offset == NULL)
system_timer->offset = dummy_gettimeoffset;
-Index: linux-2.6.23.16/arch/arm/mach-sl2312/Kconfig
+Index: linux-2.6.23.17/arch/arm/mach-sl2312/Kconfig
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/arch/arm/mach-sl2312/Kconfig 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/arch/arm/mach-sl2312/Kconfig
@@ -0,0 +1,33 @@
+
+menu "SL2312"
@@ -654,10 +654,10 @@ Index: linux-2.6.23.16/arch/arm/mach-sl2312/Kconfig
+ Enable this option to test dual cpu Inter-Processor-Interrupt
+endmenu
+
-Index: linux-2.6.23.16/arch/arm/mach-sl2312/Makefile
+Index: linux-2.6.23.17/arch/arm/mach-sl2312/Makefile
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/arch/arm/mach-sl2312/Makefile 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/arch/arm/mach-sl2312/Makefile
@@ -0,0 +1,16 @@
+#
+# Makefile for the linux kernel.
@@ -675,20 +675,20 @@ Index: linux-2.6.23.16/arch/arm/mach-sl2312/Makefile
+obj-$(CONFIG_SL2312_USB) += sl2312-otg.o # sl2312-otg-1.o
+obj-$(CONFIG_GEMINI_XOR_ACCE) += xor.o
+obj-$(CONFIG_GEMINI_IPI) += gemini_ipi.o
-Index: linux-2.6.23.16/arch/arm/mach-sl2312/Makefile.boot
+Index: linux-2.6.23.17/arch/arm/mach-sl2312/Makefile.boot
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/arch/arm/mach-sl2312/Makefile.boot 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/arch/arm/mach-sl2312/Makefile.boot
@@ -0,0 +1,5 @@
+ zreladdr-y := 0x00008000
+params_phys-y := 0x00508100
+#params_phys-y := 0x00008100
+initrd_phys-y := 0x00800000
+
-Index: linux-2.6.23.16/arch/arm/mach-sl2312/arch.c
+Index: linux-2.6.23.17/arch/arm/mach-sl2312/arch.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/arch/arm/mach-sl2312/arch.c 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/arch/arm/mach-sl2312/arch.c
@@ -0,0 +1,72 @@
+/*
+ * linux/arch/arm/mach-epxa10db/arch.c
@@ -762,10 +762,10 @@ Index: linux-2.6.23.16/arch/arm/mach-sl2312/arch.c
+ .init_irq = sl2312_init_irq,
+ .timer = &sl2312_timer,
+MACHINE_END
-Index: linux-2.6.23.16/arch/arm/mach-sl2312/gemini_ipi.c
+Index: linux-2.6.23.17/arch/arm/mach-sl2312/gemini_ipi.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/arch/arm/mach-sl2312/gemini_ipi.c 2008-03-15 16:53:01.339687322 +0200
+--- /dev/null
++++ linux-2.6.23.17/arch/arm/mach-sl2312/gemini_ipi.c
@@ -0,0 +1,593 @@
+/*
+ * FILE NAME sl_cir.c
@@ -1360,10 +1360,10 @@ Index: linux-2.6.23.16/arch/arm/mach-sl2312/gemini_ipi.c
+MODULE_AUTHOR("Jason Lee <jason@storlink.com.tw>");
+MODULE_DESCRIPTION("Storlink IPI driver");
+MODULE_LICENSE("GPL");
-Index: linux-2.6.23.16/arch/arm/mach-sl2312/hw_xor.h
+Index: linux-2.6.23.17/arch/arm/mach-sl2312/hw_xor.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/arch/arm/mach-sl2312/hw_xor.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/arch/arm/mach-sl2312/hw_xor.h
@@ -0,0 +1,573 @@
+/*
+* linux/include/asm-arm/xor.h
@@ -1938,10 +1938,10 @@ Index: linux-2.6.23.16/arch/arm/mach-sl2312/hw_xor.h
+}
+#endif //XOR_SW_FILL_IN
+
-Index: linux-2.6.23.16/arch/arm/mach-sl2312/irq.c
+Index: linux-2.6.23.17/arch/arm/mach-sl2312/irq.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/arch/arm/mach-sl2312/irq.c 2008-03-14 11:58:14.702460322 +0200
+--- /dev/null
++++ linux-2.6.23.17/arch/arm/mach-sl2312/irq.c
@@ -0,0 +1,202 @@
+/*
+ * linux/arch/arm/mach-epxa10db/irq.c
@@ -2145,10 +2145,10 @@ Index: linux-2.6.23.16/arch/arm/mach-sl2312/irq.c
+ __raw_writel(level,IRQ_TLEVEL(IO_ADDRESS(SL2312_INTERRUPT_BASE)));
+
+}
-Index: linux-2.6.23.16/arch/arm/mach-sl2312/lpc.c
+Index: linux-2.6.23.17/arch/arm/mach-sl2312/lpc.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/arch/arm/mach-sl2312/lpc.c 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/arch/arm/mach-sl2312/lpc.c
@@ -0,0 +1,125 @@
+/*
+ *
@@ -2275,10 +2275,10 @@ Index: linux-2.6.23.16/arch/arm/mach-sl2312/lpc.c
+}
+
+//__initcall(InitLPCInterface);
-Index: linux-2.6.23.16/arch/arm/mach-sl2312/mm.c
+Index: linux-2.6.23.17/arch/arm/mach-sl2312/mm.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/arch/arm/mach-sl2312/mm.c 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/arch/arm/mach-sl2312/mm.c
@@ -0,0 +1,80 @@
+/*
+ * linux/arch/arm/mach-epxa10db/mm.c
@@ -2360,10 +2360,10 @@ Index: linux-2.6.23.16/arch/arm/mach-sl2312/mm.c
+{
+ iotable_init(sl2312_io_desc, ARRAY_SIZE(sl2312_io_desc));
+}
-Index: linux-2.6.23.16/arch/arm/mach-sl2312/pci.c
+Index: linux-2.6.23.17/arch/arm/mach-sl2312/pci.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/arch/arm/mach-sl2312/pci.c 2008-03-14 12:56:27.401497897 +0200
+--- /dev/null
++++ linux-2.6.23.17/arch/arm/mach-sl2312/pci.c
@@ -0,0 +1,359 @@
+/*
+ * linux/arch/arm/mach-sl2312/pci_sl2312.c
@@ -2724,10 +2724,10 @@ Index: linux-2.6.23.16/arch/arm/mach-sl2312/pci.c
+}
+
+subsys_initcall(sl2312_pci_init);
-Index: linux-2.6.23.16/arch/arm/mach-sl2312/sl2312-otg-1.c
+Index: linux-2.6.23.17/arch/arm/mach-sl2312/sl2312-otg-1.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/arch/arm/mach-sl2312/sl2312-otg-1.c 2008-03-15 16:53:18.340655940 +0200
+--- /dev/null
++++ linux-2.6.23.17/arch/arm/mach-sl2312/sl2312-otg-1.c
@@ -0,0 +1,64 @@
+/*
+ * linux/arch/arm/mach-pxa/sl2312.c
@@ -2793,10 +2793,10 @@ Index: linux-2.6.23.16/arch/arm/mach-sl2312/sl2312-otg-1.c
+}
+
+subsys_initcall(sl2312_1_init);
-Index: linux-2.6.23.16/arch/arm/mach-sl2312/sl2312-otg.c
+Index: linux-2.6.23.17/arch/arm/mach-sl2312/sl2312-otg.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/arch/arm/mach-sl2312/sl2312-otg.c 2008-03-14 12:33:51.324219457 +0200
+--- /dev/null
++++ linux-2.6.23.17/arch/arm/mach-sl2312/sl2312-otg.c
@@ -0,0 +1,87 @@
+/*
+ * linux/arch/arm/mach-pxa/sl2312.c
@@ -2885,10 +2885,10 @@ Index: linux-2.6.23.16/arch/arm/mach-sl2312/sl2312-otg.c
+}
+
+subsys_initcall(sl2312_init);
-Index: linux-2.6.23.16/arch/arm/mach-sl2312/sl3516_device.c
+Index: linux-2.6.23.17/arch/arm/mach-sl2312/sl3516_device.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/arch/arm/mach-sl2312/sl3516_device.c 2008-03-14 12:19:14.774267722 +0200
+--- /dev/null
++++ linux-2.6.23.17/arch/arm/mach-sl2312/sl3516_device.c
@@ -0,0 +1,89 @@
+/*
+ * linux/arch/arm/mach-2312/sl3516_device.c
@@ -2979,10 +2979,10 @@ Index: linux-2.6.23.16/arch/arm/mach-sl2312/sl3516_device.c
+}
+
+subsys_initcall(sl3516_init);
-Index: linux-2.6.23.16/arch/arm/mach-sl2312/time.c
+Index: linux-2.6.23.17/arch/arm/mach-sl2312/time.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/arch/arm/mach-sl2312/time.c 2008-03-14 12:16:06.263525107 +0200
+--- /dev/null
++++ linux-2.6.23.17/arch/arm/mach-sl2312/time.c
@@ -0,0 +1,134 @@
+/*
+ * linux/include/asm-arm/arch-epxa10db/time.h
@@ -3118,10 +3118,10 @@ Index: linux-2.6.23.16/arch/arm/mach-sl2312/time.c
+}
+
+
-Index: linux-2.6.23.16/arch/arm/mach-sl2312/xor.c
+Index: linux-2.6.23.17/arch/arm/mach-sl2312/xor.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/arch/arm/mach-sl2312/xor.c 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/arch/arm/mach-sl2312/xor.c
@@ -0,0 +1,1200 @@
+/*
+ * arch/arm/mach-sl2312/xor.c
@@ -4323,11 +4323,11 @@ Index: linux-2.6.23.16/arch/arm/mach-sl2312/xor.c
+module_init(gemini_xor_init);
+module_exit(gemini_xor_exit);
+
-Index: linux-2.6.23.16/arch/arm/mm/Kconfig
+Index: linux-2.6.23.17/arch/arm/mm/Kconfig
===================================================================
---- linux-2.6.23.16.orig/arch/arm/mm/Kconfig 2008-03-13 17:46:04.500819685 +0200
-+++ linux-2.6.23.16/arch/arm/mm/Kconfig 2008-03-13 17:48:24.508798285 +0200
-@@ -187,6 +187,26 @@
+--- linux-2.6.23.17.orig/arch/arm/mm/Kconfig
++++ linux-2.6.23.17/arch/arm/mm/Kconfig
+@@ -187,6 +187,26 @@ config CPU_ARM926T
Say Y if you want support for the ARM926T processor.
Otherwise, say N.
@@ -4354,7 +4354,7 @@ Index: linux-2.6.23.16/arch/arm/mm/Kconfig
# ARM940T
config CPU_ARM940T
bool "Support ARM940T processor" if ARCH_INTEGRATOR
-@@ -461,6 +481,9 @@
+@@ -461,6 +481,9 @@ config CPU_CACHE_VIVT
config CPU_CACHE_VIPT
bool
@@ -4364,7 +4364,7 @@ Index: linux-2.6.23.16/arch/arm/mm/Kconfig
if MMU
# The copy-page model
config CPU_COPY_V3
-@@ -475,6 +498,12 @@
+@@ -475,6 +498,12 @@ config CPU_COPY_V4WB
config CPU_COPY_V6
bool
@@ -4377,7 +4377,7 @@ Index: linux-2.6.23.16/arch/arm/mm/Kconfig
# This selects the TLB model
config CPU_TLB_V3
bool
-@@ -534,6 +563,14 @@
+@@ -534,6 +563,14 @@ config CPU_CP15_MPU
config IO_36
bool
@@ -4392,7 +4392,7 @@ Index: linux-2.6.23.16/arch/arm/mm/Kconfig
comment "Processor Features"
config ARM_THUMB
-@@ -600,7 +637,7 @@
+@@ -600,7 +637,7 @@ config CPU_DCACHE_SIZE
config CPU_DCACHE_WRITETHROUGH
bool "Force write through D-cache"
@@ -4401,11 +4401,11 @@ Index: linux-2.6.23.16/arch/arm/mm/Kconfig
default y if CPU_ARM925T
help
Say Y here to use the data cache in writethrough mode. Unless you
-Index: linux-2.6.23.16/arch/arm/mm/Makefile
+Index: linux-2.6.23.17/arch/arm/mm/Makefile
===================================================================
---- linux-2.6.23.16.orig/arch/arm/mm/Makefile 2008-03-13 17:46:04.500819685 +0200
-+++ linux-2.6.23.16/arch/arm/mm/Makefile 2008-03-13 17:48:24.508798285 +0200
-@@ -32,6 +32,7 @@
+--- linux-2.6.23.17.orig/arch/arm/mm/Makefile
++++ linux-2.6.23.17/arch/arm/mm/Makefile
+@@ -32,6 +32,7 @@ obj-$(CONFIG_CPU_CACHE_V4WT) += cache-v4
obj-$(CONFIG_CPU_CACHE_V4WB) += cache-v4wb.o
obj-$(CONFIG_CPU_CACHE_V6) += cache-v6.o
obj-$(CONFIG_CPU_CACHE_V7) += cache-v7.o
@@ -4413,7 +4413,7 @@ Index: linux-2.6.23.16/arch/arm/mm/Makefile
obj-$(CONFIG_CPU_COPY_V3) += copypage-v3.o
obj-$(CONFIG_CPU_COPY_V4WT) += copypage-v4wt.o
-@@ -40,6 +41,7 @@
+@@ -40,6 +41,7 @@ obj-$(CONFIG_CPU_COPY_V6) += copypage-v6
obj-$(CONFIG_CPU_SA1100) += copypage-v4mc.o
obj-$(CONFIG_CPU_XSCALE) += copypage-xscale.o
obj-$(CONFIG_CPU_XSC3) += copypage-xsc3.o
@@ -4421,7 +4421,7 @@ Index: linux-2.6.23.16/arch/arm/mm/Makefile
obj-$(CONFIG_CPU_TLB_V3) += tlb-v3.o
obj-$(CONFIG_CPU_TLB_V4WT) += tlb-v4.o
-@@ -47,6 +49,7 @@
+@@ -47,6 +49,7 @@ obj-$(CONFIG_CPU_TLB_V4WB) += tlb-v4wb.o
obj-$(CONFIG_CPU_TLB_V4WBI) += tlb-v4wbi.o
obj-$(CONFIG_CPU_TLB_V6) += tlb-v6.o
obj-$(CONFIG_CPU_TLB_V7) += tlb-v7.o
@@ -4429,7 +4429,7 @@ Index: linux-2.6.23.16/arch/arm/mm/Makefile
obj-$(CONFIG_CPU_ARM610) += proc-arm6_7.o
obj-$(CONFIG_CPU_ARM710) += proc-arm6_7.o
-@@ -60,6 +63,7 @@
+@@ -60,6 +63,7 @@ obj-$(CONFIG_CPU_ARM925T) += proc-arm925
obj-$(CONFIG_CPU_ARM926T) += proc-arm926.o
obj-$(CONFIG_CPU_ARM940T) += proc-arm940.o
obj-$(CONFIG_CPU_ARM946E) += proc-arm946.o
@@ -4437,10 +4437,10 @@ Index: linux-2.6.23.16/arch/arm/mm/Makefile
obj-$(CONFIG_CPU_ARM1020) += proc-arm1020.o
obj-$(CONFIG_CPU_ARM1020E) += proc-arm1020e.o
obj-$(CONFIG_CPU_ARM1022) += proc-arm1022.o
-Index: linux-2.6.23.16/arch/arm/mm/cache-fa.S
+Index: linux-2.6.23.17/arch/arm/mm/cache-fa.S
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/arch/arm/mm/cache-fa.S 2008-03-13 18:01:19.552965535 +0200
+--- /dev/null
++++ linux-2.6.23.17/arch/arm/mm/cache-fa.S
@@ -0,0 +1,400 @@
+/*
+ * linux/arch/arm/mm/cache-fa.S
@@ -4842,10 +4842,10 @@ Index: linux-2.6.23.16/arch/arm/mm/cache-fa.S
+ .long fa_dma_clean_range
+ .long fa_dma_flush_range
+ .size fa_cache_fns, . - fa_cache_fns
-Index: linux-2.6.23.16/arch/arm/mm/copypage-fa.S
+Index: linux-2.6.23.17/arch/arm/mm/copypage-fa.S
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/arch/arm/mm/copypage-fa.S 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/arch/arm/mm/copypage-fa.S
@@ -0,0 +1,106 @@
+/*
+ * linux/arch/arm/lib/copypage-fa.S
@@ -4953,10 +4953,10 @@ Index: linux-2.6.23.16/arch/arm/mm/copypage-fa.S
+ .long fa_clear_user_page
+ .long fa_copy_user_page
+ .size fa_user_fns, . - fa_user_fns
-Index: linux-2.6.23.16/arch/arm/mm/init.c
+Index: linux-2.6.23.17/arch/arm/mm/init.c
===================================================================
---- linux-2.6.23.16.orig/arch/arm/mm/init.c 2008-03-13 17:46:04.500819685 +0200
-+++ linux-2.6.23.16/arch/arm/mm/init.c 2008-03-13 17:48:24.508798285 +0200
+--- linux-2.6.23.17.orig/arch/arm/mm/init.c
++++ linux-2.6.23.17/arch/arm/mm/init.c
@@ -23,6 +23,7 @@
#include <asm/mach/arch.h>
@@ -4965,7 +4965,7 @@ Index: linux-2.6.23.16/arch/arm/mm/init.c
#include "mm.h"
-@@ -252,6 +253,11 @@
+@@ -252,6 +253,11 @@ bootmem_init_node(int node, int initrd_n
initrd_end = initrd_start + phys_initrd_size;
}
#endif
@@ -4977,10 +4977,10 @@ Index: linux-2.6.23.16/arch/arm/mm/init.c
/*
* Finally, reserve any node zero regions.
-Index: linux-2.6.23.16/arch/arm/mm/proc-fa526.S
+Index: linux-2.6.23.17/arch/arm/mm/proc-fa526.S
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/arch/arm/mm/proc-fa526.S 2008-03-14 14:59:46.823166907 +0200
+--- /dev/null
++++ linux-2.6.23.17/arch/arm/mm/proc-fa526.S
@@ -0,0 +1,407 @@
+/*
+ * linux/arch/arm/mm/proc-fa526.S: MMU functions for FA526
@@ -5389,10 +5389,10 @@ Index: linux-2.6.23.16/arch/arm/mm/proc-fa526.S
+ .size __fa526_proc_info, . - __fa526_proc_info
+
+
-Index: linux-2.6.23.16/arch/arm/mm/tlb-fa.S
+Index: linux-2.6.23.17/arch/arm/mm/tlb-fa.S
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/arch/arm/mm/tlb-fa.S 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/arch/arm/mm/tlb-fa.S
@@ -0,0 +1,96 @@
+/*
+ * linux/arch/arm/mm/tlb-fa.S
@@ -5490,11 +5490,11 @@ Index: linux-2.6.23.16/arch/arm/mm/tlb-fa.S
+ .long fa_flush_kern_tlb_range
+ .long fa_tlb_flags
+ .size fa_tlb_fns, . - fa_tlb_fns
-Index: linux-2.6.23.16/arch/arm/tools/mach-types
+Index: linux-2.6.23.17/arch/arm/tools/mach-types
===================================================================
---- linux-2.6.23.16.orig/arch/arm/tools/mach-types 2008-03-13 17:46:04.500819685 +0200
-+++ linux-2.6.23.16/arch/arm/tools/mach-types 2008-03-13 17:48:24.508798285 +0200
-@@ -208,7 +208,8 @@
+--- linux-2.6.23.17.orig/arch/arm/tools/mach-types
++++ linux-2.6.23.17/arch/arm/tools/mach-types
+@@ -208,7 +208,8 @@ karo ARCH_KARO KARO 190
fester SA1100_FESTER FESTER 191
gpi ARCH_GPI GPI 192
smdk2410 ARCH_SMDK2410 SMDK2410 193
@@ -5504,10 +5504,10 @@ Index: linux-2.6.23.16/arch/arm/tools/mach-types
nexio SA1100_NEXIO NEXIO 195
bitbox SA1100_BITBOX BITBOX 196
g200 SA1100_G200 G200 197
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/SL_gpio.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/SL_gpio.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/SL_gpio.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/SL_gpio.h
@@ -0,0 +1,59 @@
+#define GPIO_MINOR_LAST 31
+#define GPIO_MAJOR 120 // Experiemental
@@ -5568,10 +5568,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/SL_gpio.h
+#define GPIO_PULLUP 1
+#define GPIO_ENABLEPULL 1
+#define GPIO_DISABLEPULL 0
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/debug-macro.S
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/debug-macro.S
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/debug-macro.S 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/debug-macro.S
@@ -0,0 +1,20 @@
+/* linux/include/asm-arm/arch-ebsa110/debug-macro.S
+ *
@@ -5593,10 +5593,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/debug-macro.S
+#define UART_SHIFT 2
+#define FLOW_CONTROL
+#include <asm/hardware/debug-8250.S>
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/dma.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/dma.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/dma.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/dma.h
@@ -0,0 +1,28 @@
+/*
+ * linux/include/asm-arm/arch-camelot/dma.h
@@ -5626,10 +5626,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/dma.h
+
+#endif /* _ASM_ARCH_DMA_H */
+
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/entry-macro.S
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/entry-macro.S
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/entry-macro.S 2008-03-13 17:49:18.511875745 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/entry-macro.S
@@ -0,0 +1,42 @@
+/*
+ * include/asm-arm/arch-arm/entry-macro.S
@@ -5673,10 +5673,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/entry-macro.S
+ .macro irq_prio_table
+ .endm
+
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/flash.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/flash.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/flash.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/flash.h
@@ -0,0 +1,83 @@
+#ifndef __ASM_ARM_ARCH_FLASH_H
+#define __ASM_ARM_ARCH_FLASH_H
@@ -5761,10 +5761,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/flash.h
+extern int m25p80_sector_erase(__u32 address, __u32 schip_en);
+
+#endif
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/gemini_cir.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/gemini_cir.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/gemini_cir.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/gemini_cir.h
@@ -0,0 +1,102 @@
+#ifndef _ASM_ARCH_CIR_H
+#define _ASM_ARCH_CIR_H
@@ -5868,10 +5868,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/gemini_cir.h
+#define CIR_WAIT_INT_DATA _IOWR (CIR_IOCTL_BASE, 15, struct cir_ioctl_data48)
+
+#endif //_ASM_ARCH_CIR_H
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/gemini_gpio.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/gemini_gpio.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/gemini_gpio.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/gemini_gpio.h
@@ -0,0 +1,77 @@
+/*
+ * FILE NAME gemini_gpio.h
@@ -5950,10 +5950,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/gemini_gpio.h
+extern int request_gpio_irq(int bit,void (*handler)(int),char level,char high,char both);
+extern int free_gpio_irq(int bit);
+#endif
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/gemini_i2s.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/gemini_i2s.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/gemini_i2s.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/gemini_i2s.h
@@ -0,0 +1,169 @@
+#ifndef __GEMINI_I2S_H__
+#define __GEMINI_I2S_H__
@@ -6124,10 +6124,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/gemini_i2s.h
+
+
+#endif //__GEMINI_I2S_H__
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/gemini_ssp.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/gemini_ssp.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/gemini_ssp.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/gemini_ssp.h
@@ -0,0 +1,263 @@
+/******************************************************************************
+ * gemini_ssp.h
@@ -6392,10 +6392,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/gemini_ssp.h
+void ringBackJapan(int num) ;
+void stateMachine(int num);
+
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/hardware.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/hardware.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/hardware.h 2008-03-14 12:48:02.872746442 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/hardware.h
@@ -0,0 +1,47 @@
+/*
+ * linux/include/asm-arm/arch-epxa10/hardware.h
@@ -6444,10 +6444,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/hardware.h
+
+#endif
+
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/int_ctrl.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/int_ctrl.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/int_ctrl.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/int_ctrl.h
@@ -0,0 +1,171 @@
+/*
+ *
@@ -6620,10 +6620,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/int_ctrl.h
+#endif /* __INT_CTRL_H */
+
+
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/io.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/io.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/io.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/io.h
@@ -0,0 +1,50 @@
+/*
+ * linux/include/asm-arm/arch-epxa10db/io.h
@@ -6675,10 +6675,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/io.h
+
+
+#endif
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/ipi.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/ipi.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/ipi.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/ipi.h
@@ -0,0 +1,189 @@
+/*
+ * linux/include/asm-arm/arch-sl2312/system.h
@@ -6869,10 +6869,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/ipi.h
+
+
+#endif
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/irq.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/irq.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/irq.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/irq.h
@@ -0,0 +1,23 @@
+/*
+ * linux/include/asm-arm/arch-sl2312/irq.h
@@ -6897,10 +6897,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/irq.h
+ // Since we have PCI interrupt which the interrupt line is pseudo
+ // we need do some fixup
+int fixup_irq(int irq);
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/irqs.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/irqs.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/irqs.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/irqs.h
@@ -0,0 +1,102 @@
+/*
+ * linux/include/asm-arm/arch-camelot/irqs.h
@@ -7004,10 +7004,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/irqs.h
+
+
+
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/it8712.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/it8712.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/it8712.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/it8712.h
@@ -0,0 +1,24 @@
+
+#ifndef __IT8712_H__
@@ -7033,10 +7033,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/it8712.h
+char LPCGetConfig(char LdnNumber, char Index);
+
+#endif
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/memory.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/memory.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/memory.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/memory.h
@@ -0,0 +1,38 @@
+/*
+ * linux/include/asm-arm/arch-sl2312/memory.h
@@ -7076,10 +7076,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/memory.h
+#define __bus_to_virt(x) (x - /*SDRAM_BASE*/0 + PAGE_OFFSET)
+
+#endif
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/param.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/param.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/param.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/param.h
@@ -0,0 +1,20 @@
+/*
+ * linux/include/asm-arm/arch-epxa10db/param.h
@@ -7101,10 +7101,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/param.h
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/pci.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/pci.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/pci.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/pci.h
@@ -0,0 +1,18 @@
+
+#ifndef __SL2312_PCI_H__
@@ -7124,10 +7124,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/pci.h
+int sl2312_pci_get_int_src(void);
+
+#endif
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/platform.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/platform.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/platform.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/platform.h
@@ -0,0 +1,7 @@
+#ifndef PLATFORM_H
+#define PLATFORM_H
@@ -7136,10 +7136,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/platform.h
+#define MAXIRQNUM 68
+#endif
+
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/preempt.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/preempt.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/preempt.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/preempt.h
@@ -0,0 +1,63 @@
+/*
+ * include/asm-arm/arch-sl2312/preempt.h
@@ -7204,10 +7204,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/preempt.h
+
+#endif
+
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/sl2312.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/sl2312.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/sl2312.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/sl2312.h
@@ -0,0 +1,254 @@
+#ifndef __sl2312_h
+#define __sl2312_h
@@ -7463,10 +7463,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/sl2312.h
+#endif
+
+
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/sl2312_ipsec.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/sl2312_ipsec.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/sl2312_ipsec.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/sl2312_ipsec.h
@@ -0,0 +1,684 @@
+#ifndef _IPSEC_DIAG_H
+#define _IPSEC_DIAG_H
@@ -8152,17 +8152,17 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/sl2312_ipsec.h
+
+
+#endif
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/sl_random.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/sl_random.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/sl_random.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/sl_random.h
@@ -0,0 +1,2 @@
+#define RANDOM_ADD (IO_ADDRESS (0x051000000) + 0x0AC)
+
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/system.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/system.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/system.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/system.h
@@ -0,0 +1,54 @@
+/*
+ * linux/include/asm-arm/arch-sl2312/system.h
@@ -8218,10 +8218,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/system.h
+//}
+
+#endif
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/timer.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/timer.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/timer.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/timer.h
@@ -0,0 +1,53 @@
+/*
+ *
@@ -8276,10 +8276,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/timer.h
+#define TIMER_3_CR_INT_OFST (8)
+
+#endif /* __TIMER00_H */
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/timex.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/timex.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/timex.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/timex.h
@@ -0,0 +1,29 @@
+/*
+ * linux/include/asm-arm/arch-epxa10db/timex.h
@@ -8310,10 +8310,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/timex.h
+
+#define CLOCK_TICK_RATE APB_CLK
+
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/uart.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/uart.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/uart.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/uart.h
@@ -0,0 +1,100 @@
+/* *
+ * Copyright (C) 2001 Altera Corporation
@@ -8415,10 +8415,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/uart.h
+
+
+#endif /* __UART_H */
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/uncompress.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/uncompress.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/uncompress.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/uncompress.h
@@ -0,0 +1,94 @@
+/*
+ * linux/include/asm-arm/arch-epxa10db/uncompress.h
@@ -8514,10 +8514,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/uncompress.h
+#define arch_decomp_setup()
+
+#define arch_decomp_wdog()
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/vmalloc.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/vmalloc.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/vmalloc.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/vmalloc.h
@@ -0,0 +1,36 @@
+/*
+ * linux/include/asm-arm/arch-epxa10db/vmalloc.h
@@ -8555,10 +8555,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/vmalloc.h
+//#define MODULE_START (PAGE_OFFSET - 16*1048576)
+//#define MODULE_END (PAGE_OFFSET)
+
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/watchdog.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/watchdog.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/watchdog.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/watchdog.h
@@ -0,0 +1,58 @@
+#ifndef __WATCHDOG_H
+#define __WATCHDOG_H
@@ -8618,10 +8618,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/watchdog.h
+
+
+#endif
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/xor.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/xor.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/xor.h 2008-03-13 17:48:24.508798285 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/xor.h
@@ -0,0 +1,29 @@
+/*
+ * include/asm-arm/arch-sl2312/xor.h
@@ -8652,10 +8652,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/xor.h
+
+#endif /* _ASM_ARCH_XOR_H */
+
-Index: linux-2.6.23.16/include/asm-arm/cacheflush.h
+Index: linux-2.6.23.17/include/asm-arm/cacheflush.h
===================================================================
---- linux-2.6.23.16.orig/include/asm-arm/cacheflush.h 2008-03-13 17:46:04.500819685 +0200
-+++ linux-2.6.23.16/include/asm-arm/cacheflush.h 2008-03-13 17:48:24.508798285 +0200
+--- linux-2.6.23.17.orig/include/asm-arm/cacheflush.h
++++ linux-2.6.23.17/include/asm-arm/cacheflush.h
@@ -46,6 +46,18 @@
# define MULTI_CACHE 1
#endif
@@ -8675,10 +8675,10 @@ Index: linux-2.6.23.16/include/asm-arm/cacheflush.h
#if defined(CONFIG_CPU_ARM926T)
# ifdef _CACHE
# define MULTI_CACHE 1
-Index: linux-2.6.23.16/include/asm-arm/page.h
+Index: linux-2.6.23.17/include/asm-arm/page.h
===================================================================
---- linux-2.6.23.16.orig/include/asm-arm/page.h 2008-03-13 17:46:04.500819685 +0200
-+++ linux-2.6.23.16/include/asm-arm/page.h 2008-03-13 17:48:24.508798285 +0200
+--- linux-2.6.23.17.orig/include/asm-arm/page.h
++++ linux-2.6.23.17/include/asm-arm/page.h
@@ -74,6 +74,18 @@
# endif
#endif
@@ -8698,10 +8698,10 @@ Index: linux-2.6.23.16/include/asm-arm/page.h
#ifdef CONFIG_CPU_SA1100
# ifdef _USER
# define MULTI_USER 1
-Index: linux-2.6.23.16/include/asm-arm/proc-fns.h
+Index: linux-2.6.23.17/include/asm-arm/proc-fns.h
===================================================================
---- linux-2.6.23.16.orig/include/asm-arm/proc-fns.h 2008-03-13 17:46:04.500819685 +0200
-+++ linux-2.6.23.16/include/asm-arm/proc-fns.h 2008-03-13 17:48:24.508798285 +0200
+--- linux-2.6.23.17.orig/include/asm-arm/proc-fns.h
++++ linux-2.6.23.17/include/asm-arm/proc-fns.h
@@ -89,6 +89,14 @@
# define CPU_NAME cpu_arm922
# endif
@@ -8717,10 +8717,10 @@ Index: linux-2.6.23.16/include/asm-arm/proc-fns.h
# ifdef CONFIG_CPU_ARM925T
# ifdef CPU_NAME
# undef MULTI_CPU
-Index: linux-2.6.23.16/include/asm-arm/tlbflush.h
+Index: linux-2.6.23.17/include/asm-arm/tlbflush.h
===================================================================
---- linux-2.6.23.16.orig/include/asm-arm/tlbflush.h 2008-03-13 17:46:04.500819685 +0200
-+++ linux-2.6.23.16/include/asm-arm/tlbflush.h 2008-03-13 17:58:18.542650345 +0200
+--- linux-2.6.23.17.orig/include/asm-arm/tlbflush.h
++++ linux-2.6.23.17/include/asm-arm/tlbflush.h
@@ -39,6 +39,8 @@
#define TLB_V6_D_ASID (1 << 17)
#define TLB_V6_I_ASID (1 << 18)
@@ -8783,7 +8783,7 @@ Index: linux-2.6.23.16/include/asm-arm/tlbflush.h
#define v4wbi_tlb_flags (TLB_WB | TLB_DCLEAN | \
TLB_V4_I_FULL | TLB_V4_D_FULL | \
TLB_V4_I_PAGE | TLB_V4_D_PAGE)
-@@ -246,12 +287,14 @@
+@@ -246,12 +287,14 @@ extern struct cpu_tlb_fns cpu_tlb;
v4_possible_flags | \
v4wbi_possible_flags | \
v4wb_possible_flags | \
@@ -8798,7 +8798,7 @@ Index: linux-2.6.23.16/include/asm-arm/tlbflush.h
v6wbi_always_flags)
#define tlb_flag(f) ((always_tlb_flags & (f)) || (__tlb_flag & possible_tlb_flags & (f)))
-@@ -261,6 +304,9 @@
+@@ -261,6 +304,9 @@ static inline void local_flush_tlb_all(v
const int zero = 0;
const unsigned int __tlb_flag = __cpu_tlb_flags;
@@ -8808,7 +8808,7 @@ Index: linux-2.6.23.16/include/asm-arm/tlbflush.h
if (tlb_flag(TLB_WB))
dsb();
-@@ -281,6 +327,13 @@
+@@ -281,6 +327,13 @@ static inline void local_flush_tlb_all(v
dsb();
isb();
}
@@ -8822,7 +8822,7 @@ Index: linux-2.6.23.16/include/asm-arm/tlbflush.h
}
static inline void local_flush_tlb_mm(struct mm_struct *mm)
-@@ -289,6 +342,9 @@
+@@ -289,6 +342,9 @@ static inline void local_flush_tlb_mm(st
const int asid = ASID(mm);
const unsigned int __tlb_flag = __cpu_tlb_flags;
@@ -8832,7 +8832,7 @@ Index: linux-2.6.23.16/include/asm-arm/tlbflush.h
if (tlb_flag(TLB_WB))
dsb();
-@@ -317,6 +373,14 @@
+@@ -317,6 +373,14 @@ static inline void local_flush_tlb_mm(st
asm("mcr p15, 0, %0, c7, c5, 6" : : "r" (zero) : "cc");
dsb();
}
@@ -8847,7 +8847,7 @@ Index: linux-2.6.23.16/include/asm-arm/tlbflush.h
}
static inline void
-@@ -327,6 +391,9 @@
+@@ -327,6 +391,9 @@ local_flush_tlb_page(struct vm_area_stru
uaddr = (uaddr & PAGE_MASK) | ASID(vma->vm_mm);
@@ -8857,7 +8857,7 @@ Index: linux-2.6.23.16/include/asm-arm/tlbflush.h
if (tlb_flag(TLB_WB))
dsb();
-@@ -357,6 +424,13 @@
+@@ -357,6 +424,13 @@ local_flush_tlb_page(struct vm_area_stru
asm("mcr p15, 0, %0, c7, c5, 6" : : "r" (zero) : "cc");
dsb();
}
@@ -8871,7 +8871,7 @@ Index: linux-2.6.23.16/include/asm-arm/tlbflush.h
}
static inline void local_flush_tlb_kernel_page(unsigned long kaddr)
-@@ -366,6 +440,9 @@
+@@ -366,6 +440,9 @@ static inline void local_flush_tlb_kerne
kaddr &= PAGE_MASK;
@@ -8881,7 +8881,7 @@ Index: linux-2.6.23.16/include/asm-arm/tlbflush.h
if (tlb_flag(TLB_WB))
dsb();
-@@ -386,6 +463,12 @@
+@@ -386,6 +463,12 @@ static inline void local_flush_tlb_kerne
asm("mcr p15, 0, %0, c8, c6, 1" : : "r" (kaddr) : "cc");
if (tlb_flag(TLB_V6_I_PAGE))
asm("mcr p15, 0, %0, c8, c5, 1" : : "r" (kaddr) : "cc");
@@ -8894,7 +8894,7 @@ Index: linux-2.6.23.16/include/asm-arm/tlbflush.h
if (tlb_flag(TLB_V6_I_FULL | TLB_V6_D_FULL |
TLB_V6_I_PAGE | TLB_V6_D_PAGE |
-@@ -412,6 +495,7 @@
+@@ -412,6 +495,7 @@ static inline void local_flush_tlb_kerne
*/
static inline void flush_pmd_entry(pmd_t *pmd)
{
@@ -8902,7 +8902,7 @@ Index: linux-2.6.23.16/include/asm-arm/tlbflush.h
const unsigned int __tlb_flag = __cpu_tlb_flags;
if (tlb_flag(TLB_DCLEAN))
-@@ -419,15 +503,30 @@
+@@ -419,15 +503,30 @@ static inline void flush_pmd_entry(pmd_t
: : "r" (pmd) : "cc");
if (tlb_flag(TLB_WB))
dsb();
@@ -8933,11 +8933,11 @@ Index: linux-2.6.23.16/include/asm-arm/tlbflush.h
}
#undef tlb_flag
-Index: linux-2.6.23.16/include/asm-arm/xor.h
+Index: linux-2.6.23.17/include/asm-arm/xor.h
===================================================================
---- linux-2.6.23.16.orig/include/asm-arm/xor.h 2008-03-13 17:46:04.500819685 +0200
-+++ linux-2.6.23.16/include/asm-arm/xor.h 2008-03-13 17:48:24.508798285 +0200
-@@ -139,3 +139,18 @@
+--- linux-2.6.23.17.orig/include/asm-arm/xor.h
++++ linux-2.6.23.17/include/asm-arm/xor.h
+@@ -139,3 +139,18 @@ static struct xor_block_template xor_blo
xor_speed(&xor_block_8regs); \
xor_speed(&xor_block_32regs); \
} while (0)
@@ -8956,11 +8956,11 @@ Index: linux-2.6.23.16/include/asm-arm/xor.h
+ xor_speed(&xor_block_gemini); \
+ } while (0)
+#endif
-Index: linux-2.6.23.16/include/linux/apm_bios.h
+Index: linux-2.6.23.17/include/linux/apm_bios.h
===================================================================
---- linux-2.6.23.16.orig/include/linux/apm_bios.h 2008-03-13 17:46:04.500819685 +0200
-+++ linux-2.6.23.16/include/linux/apm_bios.h 2008-03-13 17:48:24.508798285 +0200
-@@ -217,4 +217,24 @@
+--- linux-2.6.23.17.orig/include/linux/apm_bios.h
++++ linux-2.6.23.17/include/linux/apm_bios.h
+@@ -217,4 +217,24 @@ extern struct apm_info apm_info;
#define APM_IOC_STANDBY _IO('A', 1)
#define APM_IOC_SUSPEND _IO('A', 2)
@@ -8985,11 +8985,11 @@ Index: linux-2.6.23.16/include/linux/apm_bios.h
+#define PWC_SHUTDOWN _IO ('A', 18)
+
#endif /* LINUX_APM_H */
-Index: linux-2.6.23.16/kernel/time.c
+Index: linux-2.6.23.17/kernel/time.c
===================================================================
---- linux-2.6.23.16.orig/kernel/time.c 2008-03-13 17:46:04.500819685 +0200
-+++ linux-2.6.23.16/kernel/time.c 2008-03-13 17:48:24.508798285 +0200
-@@ -76,6 +76,7 @@
+--- linux-2.6.23.17.orig/kernel/time.c
++++ linux-2.6.23.17/kernel/time.c
+@@ -76,6 +76,7 @@ asmlinkage long sys_time(time_t __user *
* why not move it into the appropriate arch directory (for those
* architectures that need it).
*/
@@ -8997,7 +8997,7 @@ Index: linux-2.6.23.16/kernel/time.c
asmlinkage long sys_stime(time_t __user *tptr)
{
-@@ -87,6 +88,10 @@
+@@ -87,6 +88,10 @@ asmlinkage long sys_stime(time_t __user
tv.tv_nsec = 0;
diff --git a/target/linux/storm/patches/1002-gmac.patch b/target/linux/storm/patches/1002-gmac.patch
index 82c72fbc35..961b5dd4f3 100644
--- a/target/linux/storm/patches/1002-gmac.patch
+++ b/target/linux/storm/patches/1002-gmac.patch
@@ -1,7 +1,7 @@
-Index: linux-2.6.23.16/drivers/net/sl2312_emac.c
+Index: linux-2.6.23.17/drivers/net/sl2312_emac.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/net/sl2312_emac.c 2008-03-15 16:59:16.361058585 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/net/sl2312_emac.c
@@ -0,0 +1,4604 @@
+#include <linux/module.h>
+#include <linux/kernel.h>
@@ -4607,10 +4607,10 @@ Index: linux-2.6.23.16/drivers/net/sl2312_emac.c
+ }
+}
+
-Index: linux-2.6.23.16/drivers/net/sl351x_crc16.c
+Index: linux-2.6.23.17/drivers/net/sl351x_crc16.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/net/sl351x_crc16.c 2008-03-15 16:57:25.854761029 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/net/sl351x_crc16.c
@@ -0,0 +1,93 @@
+/****************************************************************************
+* Name : sl351x_crc16.c
@@ -4705,10 +4705,10 @@ Index: linux-2.6.23.16/drivers/net/sl351x_crc16.c
+
+ return(SWAP_WORD(crc));
+}
-Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
+Index: linux-2.6.23.17/drivers/net/sl351x_gmac.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/net/sl351x_gmac.c 2008-03-15 16:59:23.361457295 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/net/sl351x_gmac.c
@@ -0,0 +1,5622 @@
+/**************************************************************************
+* Copyright 2006 StorLink Semiconductors, Inc. All rights reserved.
@@ -10332,10 +10332,10 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
+late_initcall(sl351x_mac_address_init);
+
+
-Index: linux-2.6.23.16/drivers/net/sl351x_hash.c
+Index: linux-2.6.23.17/drivers/net/sl351x_hash.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/net/sl351x_hash.c 2008-03-15 16:59:32.361970401 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/net/sl351x_hash.c
@@ -0,0 +1,713 @@
+/**************************************************************************
+* Copyright 2006 StorLink Semiconductors, Inc. All rights reserved.
@@ -11050,10 +11050,10 @@ Index: linux-2.6.23.16/drivers/net/sl351x_hash.c
+}
+
+
-Index: linux-2.6.23.16/drivers/net/sl351x_nat.c
+Index: linux-2.6.23.17/drivers/net/sl351x_nat.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/net/sl351x_nat.c 2008-03-15 16:59:39.862397640 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/net/sl351x_nat.c
@@ -0,0 +1,1736 @@
+/****************************************************************************
+* Copyright 2006 StorLink Semiconductors, Inc. All rights reserved.
@@ -12791,10 +12791,10 @@ Index: linux-2.6.23.16/drivers/net/sl351x_nat.c
+
+#endif // CONFIG_SL351x_NAT
+
-Index: linux-2.6.23.16/drivers/net/sl351x_proc.c
+Index: linux-2.6.23.17/drivers/net/sl351x_proc.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/net/sl351x_proc.c 2008-03-15 16:59:48.862910740 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/net/sl351x_proc.c
@@ -0,0 +1,578 @@
+/****************************************************************************
+* Copyright 2006 Storlink Corp. All rights reserved.
@@ -13374,10 +13374,10 @@ Index: linux-2.6.23.16/drivers/net/sl351x_proc.c
+module_exit(fini);
+
+#endif // CONFIG_PROC_FS
-Index: linux-2.6.23.16/drivers/net/sl351x_toe.c
+Index: linux-2.6.23.17/drivers/net/sl351x_toe.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/net/sl351x_toe.c 2008-03-15 16:57:25.854761029 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/net/sl351x_toe.c
@@ -0,0 +1,1083 @@
+/**************************************************************************
+* Copyright 2006 StorLink Semiconductors, Inc. All rights reserved.
@@ -14462,10 +14462,10 @@ Index: linux-2.6.23.16/drivers/net/sl351x_toe.c
+}
+
+
-Index: linux-2.6.23.16/drivers/net/sl_lepus_hash.c
+Index: linux-2.6.23.17/drivers/net/sl_lepus_hash.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/net/sl_lepus_hash.c 2008-03-15 16:59:57.863423587 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/net/sl_lepus_hash.c
@@ -0,0 +1,553 @@
+/**************************************************************************
+* Copyright 2006 StorLink Semiconductors, Inc. All rights reserved.
@@ -15020,10 +15020,10 @@ Index: linux-2.6.23.16/drivers/net/sl_lepus_hash.c
+}
+
+
-Index: linux-2.6.23.16/drivers/net/sl_switch.c
+Index: linux-2.6.23.17/drivers/net/sl_switch.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/net/sl_switch.c 2008-03-15 17:00:08.364022040 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/net/sl_switch.c
@@ -0,0 +1,650 @@
+#include <linux/module.h>
+#include <linux/kernel.h>
@@ -15675,10 +15675,10 @@ Index: linux-2.6.23.16/drivers/net/sl_switch.c
+}
+EXPORT_SYMBOL(SPI_get_identifier);
+
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_gmac.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_gmac.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_gmac.h 2008-03-15 16:57:25.854761029 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_gmac.h
@@ -0,0 +1,2223 @@
+/****************************************************************************
+* Copyright 2006 StorLink Semiconductors, Inc. All rights reserved.
@@ -17903,10 +17903,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_gmac.h
+/* transmit timeout value */
+
+#endif //_GMAC_SL351x_H
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_hash_cfg.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_hash_cfg.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_hash_cfg.h 2008-03-15 16:57:25.854761029 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_hash_cfg.h
@@ -0,0 +1,365 @@
+/*-----------------------------------------------------------------------------------
+* sl351x_hash_cfg.h
@@ -18273,10 +18273,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_hash_cfg.h
+
+
+
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_nat_cfg.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_nat_cfg.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_nat_cfg.h 2008-03-15 16:57:25.854761029 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_nat_cfg.h
@@ -0,0 +1,211 @@
+/**************************************************************************
+* Copyright 2006 StorLink Semiconductors, Inc. All rights reserved.
@@ -18489,10 +18489,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_nat_cfg.h
+
+
+
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_toe.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_toe.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_toe.h 2008-03-15 16:57:25.854761029 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_toe.h
@@ -0,0 +1,88 @@
+/**************************************************************************
+* Copyright 2006 StorLink Semiconductors, Inc. All rights reserved.
diff --git a/target/linux/storm/patches/1003-gmac_one_phy.patch b/target/linux/storm/patches/1003-gmac_one_phy.patch
index 4697a2b34c..462c30c767 100644
--- a/target/linux/storm/patches/1003-gmac_one_phy.patch
+++ b/target/linux/storm/patches/1003-gmac_one_phy.patch
@@ -1,7 +1,7 @@
-Index: linux-2.6.x/include/asm-arm/arch-sl2312/sl351x_gmac.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_gmac.h
===================================================================
---- linux-2.6.x.orig/include/asm-arm/arch-sl2312/sl351x_gmac.h 2007-09-04 14:18:28.540865746 +0300
-+++ linux-2.6.x/include/asm-arm/arch-sl2312/sl351x_gmac.h 2007-09-04 14:15:55.584200244 +0300
+--- linux-2.6.23.17.orig/include/asm-arm/arch-sl2312/sl351x_gmac.h
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_gmac.h
@@ -21,7 +21,7 @@
#undef BIG_ENDIAN
#define BIG_ENDIAN 0
diff --git a/target/linux/storm/patches/1004-gmac-enable-napi.patch b/target/linux/storm/patches/1004-gmac-enable-napi.patch
index 6317160a09..76edc39cd1 100644
--- a/target/linux/storm/patches/1004-gmac-enable-napi.patch
+++ b/target/linux/storm/patches/1004-gmac-enable-napi.patch
@@ -1,7 +1,7 @@
-Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
+Index: linux-2.6.23.17/drivers/net/sl351x_gmac.c
===================================================================
---- linux-2.6.23.16.orig/drivers/net/sl351x_gmac.c 2008-03-15 16:59:23.361457295 +0200
-+++ linux-2.6.23.16/drivers/net/sl351x_gmac.c 2008-03-15 17:00:32.365389612 +0200
+--- linux-2.6.23.17.orig/drivers/net/sl351x_gmac.c
++++ linux-2.6.23.17/drivers/net/sl351x_gmac.c
@@ -68,9 +68,11 @@
#include <linux/ip.h>
#endif
@@ -15,7 +15,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
#endif
#define GMAX_TX_INTR_DISABLED 1
#define DO_HW_CHKSUM 1
-@@ -124,12 +126,17 @@
+@@ -124,12 +126,17 @@ static char _debug_prefetch_buf[_DEBUG_P
*************************************************************/
static int gmac_initialized = 0;
TOE_INFO_T toe_private_data;
@@ -35,7 +35,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
#undef CONFIG_SL351x_RXTOE
extern NAT_CFG_T nat_cfg;
-@@ -2443,7 +2450,8 @@
+@@ -2443,7 +2450,8 @@ static irqreturn_t toe_gmac_interrupt (i
toe = (TOE_INFO_T *)&toe_private_data;
// handle NAPI
#ifdef CONFIG_SL_NAPI
@@ -45,7 +45,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
{
/* disable GMAC interrupt */
//toe_gmac_disable_interrupt(tp->irq);
-@@ -2530,7 +2538,7 @@
+@@ -2530,7 +2538,7 @@ if (storlink_ctl.pauseoff == 1)
{
if (likely(netif_rx_schedule_prep(dev)))
{
@@ -54,7 +54,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
// disable GMAC-0 rx interrupt
// class-Q & TOE-Q are implemented in future
//data32 = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_ENABLE_1_REG);
-@@ -2563,7 +2571,7 @@
+@@ -2563,7 +2571,7 @@ if (storlink_ctl.pauseoff == 1)
{
if (likely(netif_rx_schedule_prep(dev)))
{
@@ -63,7 +63,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
// disable GMAC-0 rx interrupt
// class-Q & TOE-Q are implemented in future
//data32 = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_ENABLE_1_REG);
-@@ -4217,7 +4225,7 @@
+@@ -4217,7 +4225,7 @@ static int gmac_rx_poll(struct net_devic
GMAC_INFO_T *tp = (GMAC_INFO_T *)dev->priv;
unsigned int status4;
volatile DMA_RWPTR_T fq_rwptr;
@@ -72,7 +72,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
//unsigned long rx_old_bytes;
struct net_device_stats *isPtr = (struct net_device_stats *)&tp->ifStatics;
//unsigned long long rx_time;
-@@ -4479,7 +4487,7 @@
+@@ -4479,7 +4487,7 @@ static int gmac_rx_poll(struct net_devic
if (rwptr.bits.rptr == rwptr.bits.wptr)
{
diff --git a/target/linux/storm/patches/1005-gmac-napi-mask-intrs.patch b/target/linux/storm/patches/1005-gmac-napi-mask-intrs.patch
index b072fe20df..0cb200bf94 100644
--- a/target/linux/storm/patches/1005-gmac-napi-mask-intrs.patch
+++ b/target/linux/storm/patches/1005-gmac-napi-mask-intrs.patch
@@ -1,8 +1,8 @@
-Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
+Index: linux-2.6.23.17/drivers/net/sl351x_gmac.c
===================================================================
---- linux-2.6.23.16.orig/drivers/net/sl351x_gmac.c 2008-03-15 17:00:32.365389612 +0200
-+++ linux-2.6.23.16/drivers/net/sl351x_gmac.c 2008-03-15 17:00:55.366700383 +0200
-@@ -127,6 +127,7 @@
+--- linux-2.6.23.17.orig/drivers/net/sl351x_gmac.c
++++ linux-2.6.23.17/drivers/net/sl351x_gmac.c
+@@ -127,6 +127,7 @@ static char _debug_prefetch_buf[_DEBUG_P
static int gmac_initialized = 0;
TOE_INFO_T toe_private_data;
static int do_again = 0;
@@ -10,7 +10,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
spinlock_t gmac_fq_lock;
unsigned int FLAG_SWITCH;
-@@ -1065,7 +1066,8 @@
+@@ -1065,7 +1066,8 @@ static void toe_init_gmac(struct net_dev
tp->intr3_enabled = 0xffffffff;
tp->intr4_selected = GMAC0_INT_BITS | CLASS_RX_FULL_INT_BITS |
HWFQ_EMPTY_INT_BIT | SWFQ_EMPTY_INT_BIT;
@@ -20,7 +20,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
data = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_0_REG) & ~tp->intr0_selected;
writel(data, TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_0_REG);
-@@ -1115,7 +1117,7 @@
+@@ -1115,7 +1117,7 @@ static void toe_init_gmac(struct net_dev
tp->intr3_enabled |= 0xffffffff;
tp->intr4_selected |= CLASS_RX_FULL_INT_BITS |
HWFQ_EMPTY_INT_BIT | SWFQ_EMPTY_INT_BIT;
@@ -29,7 +29,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
}
data = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_0_REG) | tp->intr0_selected;
writel(data, TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_0_REG);
-@@ -2408,7 +2410,7 @@
+@@ -2408,7 +2410,7 @@ static inline void toe_gmac_fill_free_q(
// unsigned short max_cnt=TOE_SW_FREEQ_DESC_NUM>>1;
fq_rwptr.bits32 = readl(TOE_GLOBAL_BASE + GLOBAL_SWFQ_RWPTR_REG);
@@ -38,7 +38,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
//while ((max_cnt--) && (unsigned short)RWPTR_ADVANCE_ONE(fq_rwptr.bits.wptr,
// TOE_SW_FREEQ_DESC_NUM) != fq_rwptr.bits.rptr) {
while ((unsigned short)RWPTR_ADVANCE_ONE(fq_rwptr.bits.wptr,
-@@ -2428,10 +2430,47 @@
+@@ -2428,10 +2430,47 @@ static inline void toe_gmac_fill_free_q(
SET_WPTR(TOE_GLOBAL_BASE+GLOBAL_SWFQ_RWPTR_REG, fq_rwptr.bits.wptr);
toe_private_data.fq_rx_rwptr.bits32 = fq_rwptr.bits32;
}
@@ -87,7 +87,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
/*----------------------------------------------------------------------
* toe_gmac_interrupt
*----------------------------------------------------------------------*/
-@@ -2492,6 +2531,7 @@
+@@ -2492,6 +2531,7 @@ if (1)
writel(status3 & tp->intr3_enabled, TOE_GLOBAL_BASE+GLOBAL_INTERRUPT_STATUS_3_REG);
if (status4)
writel(status4 & tp->intr4_enabled, TOE_GLOBAL_BASE+GLOBAL_INTERRUPT_STATUS_4_REG);
@@ -95,7 +95,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
#if 0
/* handle freeq interrupt first */
if (status4 & tp->intr4_enabled) {
-@@ -2536,10 +2576,31 @@
+@@ -2536,10 +2576,31 @@ if (1)
}
if (netif_running(dev) && (status1 & DEFAULT_Q0_INT_BIT) && (tp->intr1_enabled & DEFAULT_Q0_INT_BIT))
{
@@ -130,7 +130,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
// class-Q & TOE-Q are implemented in future
//data32 = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_ENABLE_1_REG);
//data32 &= ~DEFAULT_Q0_INT_BIT;
-@@ -2549,7 +2610,8 @@
+@@ -2549,7 +2610,8 @@ if (1)
//tp->total_q_cnt_napi=0;
//rx_time = jiffies;
//rx_old_bytes = isPtr->rx_bytes;
@@ -140,7 +140,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
}
}
}
-@@ -2569,9 +2631,31 @@
+@@ -2569,9 +2631,31 @@ if (1)
if (netif_running(dev) && (status1 & DEFAULT_Q1_INT_BIT) && (tp->intr1_enabled & DEFAULT_Q1_INT_BIT))
{
@@ -174,7 +174,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
// disable GMAC-0 rx interrupt
// class-Q & TOE-Q are implemented in future
//data32 = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_ENABLE_1_REG);
-@@ -2583,9 +2667,13 @@
+@@ -2583,9 +2667,13 @@ if (1)
//rx_time = jiffies;
//rx_old_bytes = isPtr->rx_bytes;
__netif_rx_schedule(dev);
@@ -188,7 +188,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
}
// Interrupt Status 0
-@@ -3306,8 +3394,10 @@
+@@ -3306,8 +3394,10 @@ next_rx:
SET_RPTR(&tp->default_qhdr->word1, rwptr.bits.rptr);
tp->rx_rwptr.bits32 = rwptr.bits32;
@@ -200,7 +200,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
}
/*----------------------------------------------------------------------
-@@ -4217,6 +4307,7 @@
+@@ -4217,6 +4307,7 @@ static int gmac_rx_poll(struct net_devic
GMAC_RXDESC_T *curr_desc;
struct sk_buff *skb;
DMA_RWPTR_T rwptr;
@@ -208,7 +208,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
unsigned int pkt_size;
unsigned int desc_count;
unsigned int good_frame, chksum_status, rx_status;
-@@ -4231,7 +4322,7 @@
+@@ -4231,7 +4322,7 @@ static int gmac_rx_poll(struct net_devic
//unsigned long long rx_time;
@@ -217,7 +217,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
#if 1
if (do_again)
{
-@@ -4516,6 +4607,30 @@
+@@ -4516,6 +4607,30 @@ static int gmac_rx_poll(struct net_devic
#endif
//toe_gmac_fill_free_q();
netif_rx_complete(dev);
diff --git a/target/linux/storm/patches/1006-gmac-napi-tx.patch b/target/linux/storm/patches/1006-gmac-napi-tx.patch
index 7ba63b85a1..e9c6d94e92 100644
--- a/target/linux/storm/patches/1006-gmac-napi-tx.patch
+++ b/target/linux/storm/patches/1006-gmac-napi-tx.patch
@@ -1,7 +1,7 @@
-Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
+Index: linux-2.6.23.17/drivers/net/sl351x_gmac.c
===================================================================
---- linux-2.6.23.16.orig/drivers/net/sl351x_gmac.c 2008-03-15 17:00:55.366700383 +0200
-+++ linux-2.6.23.16/drivers/net/sl351x_gmac.c 2008-03-15 17:01:08.367441241 +0200
+--- linux-2.6.23.17.orig/drivers/net/sl351x_gmac.c
++++ linux-2.6.23.17/drivers/net/sl351x_gmac.c
@@ -43,9 +43,13 @@
#include <linux/mtd/kvctl.h>
@@ -17,7 +17,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
#ifndef CONFIG_SL351x_RXTOE
//#define CONFIG_SL351x_RXTOE 1
-@@ -126,7 +130,6 @@
+@@ -126,7 +130,6 @@ static char _debug_prefetch_buf[_DEBUG_P
*************************************************************/
static int gmac_initialized = 0;
TOE_INFO_T toe_private_data;
@@ -25,7 +25,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
static int rx_poll_enabled;
spinlock_t gmac_fq_lock;
unsigned int FLAG_SWITCH;
-@@ -190,7 +193,7 @@
+@@ -190,7 +193,7 @@ void mac_get_sw_tx_weight(struct net_dev
void mac_set_sw_tx_weight(struct net_device *dev, char *weight);
void mac_get_hw_tx_weight(struct net_device *dev, char *weight);
void mac_set_hw_tx_weight(struct net_device *dev, char *weight);
@@ -34,7 +34,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
#ifdef VITESSE_G5SWITCH
extern int Get_Set_port_status(void);
-@@ -295,12 +298,14 @@
+@@ -295,12 +298,14 @@ static int __init gmac_init_module(void)
for(j = 0; i<CONFIG_MAC_NUM; j++)
{
i=j;
@@ -49,7 +49,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
tp = (GMAC_INFO_T *)&toe_private_data.gmac[i];
tp->dev = NULL;
-@@ -459,7 +464,7 @@
+@@ -459,7 +464,7 @@ void mac_init_drv(void)
toe->gmac[1].dma_base_addr = TOE_GMAC1_DMA_BASE;
toe->gmac[0].auto_nego_cfg = 1;
toe->gmac[1].auto_nego_cfg = 1;
@@ -58,7 +58,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
toe->gmac[0].speed_cfg = GMAC_SPEED_1000;
toe->gmac[1].speed_cfg = GMAC_SPEED_1000;
#else
-@@ -508,7 +513,7 @@
+@@ -508,7 +513,7 @@ void mac_init_drv(void)
// Write GLOBAL_QUEUE_THRESHOLD_REG
threshold.bits32 = 0;
threshold.bits.swfq_empty = (TOE_SW_FREEQ_DESC_NUM > 256) ? 255 :
@@ -67,7 +67,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
threshold.bits.hwfq_empty = (TOE_HW_FREEQ_DESC_NUM > 256) ? 256/4 :
TOE_HW_FREEQ_DESC_NUM/4;
threshold.bits.toe_class = (TOE_TOE_DESC_NUM > 256) ? 256/4 :
-@@ -613,18 +618,25 @@
+@@ -613,18 +618,25 @@ static void toe_init_free_queue(void)
rwptr_reg.bits.rptr = 0;
toe->fq_rx_rwptr.bits32 = rwptr_reg.bits32;
writel(rwptr_reg.bits32, TOE_GLOBAL_BASE + GLOBAL_SWFQ_RWPTR_REG);
@@ -95,7 +95,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
// toe->rx_skb[i] = skb;
sw_desc_ptr->word2.buf_adr = (unsigned int)__pa(skb->data);
// consistent_sync((unsigned int)desc_ptr, sizeof(GMAC_RXDESC_T), PCI_DMA_TODEVICE);
-@@ -851,14 +863,14 @@
+@@ -851,14 +863,14 @@ static void toe_init_hwtx_queue(void)
*----------------------------------------------------------------------*/
static void toe_init_default_queue(void)
{
@@ -114,7 +114,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
if (!desc_ptr)
{
printk("%s::DMA_MALLOC fail !\n",__func__);
-@@ -866,14 +878,17 @@
+@@ -866,14 +878,17 @@ static void toe_init_default_queue(void)
}
memset((void *)desc_ptr, 0, TOE_DEFAULT_Q0_DESC_NUM * sizeof(GMAC_RXDESC_T));
toe->gmac[0].default_desc_base = (unsigned int)desc_ptr;
@@ -133,7 +133,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
if (!desc_ptr)
{
printk("%s::DMA_MALLOC fail !\n",__func__);
-@@ -1071,12 +1086,16 @@
+@@ -1071,12 +1086,16 @@ static void toe_init_gmac(struct net_dev
data = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_0_REG) & ~tp->intr0_selected;
writel(data, TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_0_REG);
@@ -150,7 +150,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
data = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_4_REG) & ~tp->intr4_selected;
writel(data, TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_4_REG);
}
-@@ -1176,11 +1195,11 @@
+@@ -1176,11 +1195,11 @@ static int toe_gmac_init_chip(struct net
GMAC_CONFIG2_T config2_val;
GMAC_CONFIG0_T config0,config0_mask;
GMAC_CONFIG1_T config1;
@@ -164,7 +164,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
// GMAC_HASH_ENABLE_REG0_T hash_ctrl;
//
#if 0 /* mac address will be set in late_initcall */
-@@ -1202,24 +1221,23 @@
+@@ -1202,24 +1221,23 @@ static int toe_gmac_init_chip(struct net
// config1.bits32 = 0x002004; //next version
/* set flow control threshold */
config1.bits32 = 0;
@@ -197,7 +197,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
// gmac_write_reg(tp->base_addr,GMAC_MCAST_FIL0,0x0,0xffffffff);
// gmac_write_reg(tp->base_addr,GMAC_MCAST_FIL1,0x0,0xffffffff);
-@@ -1249,7 +1267,7 @@
+@@ -1249,7 +1267,7 @@ static int toe_gmac_init_chip(struct net
config0.bits.dis_rx = 1; /* disable rx */
config0.bits.dis_tx = 1; /* disable tx */
config0.bits.loop_back = 0; /* enable/disable GMAC loopback */
@@ -206,7 +206,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
config0.bits.rgmii_en = 0;
config0.bits.rgmm_edge = 1;
config0.bits.rxc_inv = 0;
-@@ -1342,6 +1360,9 @@
+@@ -1342,6 +1360,9 @@ static int toe_gmac_init_chip(struct net
gmac_write_reg(tp->dma_base_addr, GMAC_AHB_WEIGHT_REG, ahb_weight.bits32, ahb_weight_mask.bits32);
#endif
@@ -216,7 +216,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
#if defined(CONFIG_SL351x_NAT) || defined(CONFIG_SL351x_RXTOE)
gmac_write_reg(tp->dma_base_addr, GMAC_SPR0, IPPROTO_TCP, 0xffffffff);
#endif
-@@ -1552,7 +1573,7 @@
+@@ -1552,7 +1573,7 @@ static void toe_gmac_tx_complete(GMAC_I
rwptr.bits32 = readl(swtxq->rwptr_reg);
if (rwptr.bits.rptr == swtxq->finished_idx)
break;
@@ -225,7 +225,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
// consistent_sync((void *)curr_desc, sizeof(GMAC_TXDESC_T), PCI_DMA_FROMDEVICE);
word0.bits32 = curr_desc->word0.bits32;
word1.bits32 = curr_desc->word1.bits32;
-@@ -1573,6 +1594,7 @@
+@@ -1573,6 +1594,7 @@ static void toe_gmac_tx_complete(GMAC_I
swtxq->finished_idx = RWPTR_ADVANCE_ONE(swtxq->finished_idx, swtxq->total_desc_num);
curr_desc = (GMAC_TXDESC_T *)swtxq->desc_base + swtxq->finished_idx;
word0.bits32 = curr_desc->word0.bits32;
@@ -233,7 +233,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
#ifdef _DUMP_TX_TCP_CONTENT
if (curr_desc->word0.bits.buffer_size < 16)
{
-@@ -1592,12 +1614,12 @@
+@@ -1592,12 +1614,12 @@ static void toe_gmac_tx_complete(GMAC_I
word0.bits.status_tx_ok = 0;
if (swtxq->tx_skb[swtxq->finished_idx])
{
@@ -250,7 +250,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
curr_desc->word0.bits32 = word0.bits32;
swtxq->curr_finished_desc = (GMAC_TXDESC_T *)curr_desc;
swtxq->total_finished++;
-@@ -1624,31 +1646,29 @@
+@@ -1624,31 +1646,29 @@ static void toe_gmac_tx_complete(GMAC_I
*----------------------------------------------------------------------*/
static int gmac_start_xmit(struct sk_buff *skb, struct net_device *dev)
{
@@ -296,7 +296,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
total_pages = snd_pages;
#endif
-@@ -1664,13 +1684,6 @@
+@@ -1664,13 +1684,6 @@ static int gmac_start_xmit(struct sk_buf
}
#endif
@@ -310,7 +310,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
#ifdef GMAC_USE_TXQ0
#define tx_qid 0
#endif
-@@ -1703,9 +1716,9 @@
+@@ -1703,9 +1716,9 @@ static int gmac_start_xmit(struct sk_buf
toe_gmac_tx_complete(tp, tx_qid, dev, 0);
if (wptr >= swtxq->finished_idx)
@@ -322,7 +322,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
if (free_desc < snd_pages)
{
// spin_unlock(&tp->tx_mutex);
-@@ -2063,9 +2076,10 @@
+@@ -2063,9 +2076,10 @@ void mac_start_txdma(struct net_device *
struct net_device_stats * gmac_get_stats(struct net_device *dev)
{
GMAC_INFO_T *tp = (GMAC_INFO_T *)dev->priv;
@@ -335,7 +335,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
if (netif_running(dev))
{
-@@ -2073,10 +2087,14 @@
+@@ -2073,10 +2087,14 @@ struct net_device_stats * gmac_get_stats
// spin_lock_irqsave(&tp->lock,flags);
pkt_drop = gmac_read_reg(tp->base_addr,GMAC_IN_DISCARDS);
pkt_error = gmac_read_reg(tp->base_addr,GMAC_IN_ERRORS);
@@ -350,7 +350,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
return &tp->ifStatics;
}
-@@ -2401,36 +2419,63 @@
+@@ -2401,36 +2419,63 @@ static int gmac_close(struct net_device
* toe_gmac_fill_free_q
* allocate buffers for free queue.
*----------------------------------------------------------------------*/
@@ -427,7 +427,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
}
// EXPORT_SYMBOL(toe_gmac_fill_free_q);
-@@ -2442,14 +2487,14 @@
+@@ -2442,14 +2487,14 @@ static void gmac_registers(const char *m
unsigned int status3;
unsigned int status4;
@@ -444,7 +444,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
printk("status: s0:%08X, s1:%08X, s2:%08X, s3:%08X, s4:%08X\n",
status0, status1, status2, status3, status4);
-@@ -2468,8 +2513,9 @@
+@@ -2468,8 +2513,9 @@ static void gmac_registers(const char *m
status3 = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_3_REG);
status4 = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_4_REG);
@@ -456,7 +456,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
}
/*----------------------------------------------------------------------
* toe_gmac_interrupt
-@@ -2485,75 +2531,44 @@
+@@ -2485,75 +2531,44 @@ static irqreturn_t toe_gmac_interrupt (i
unsigned int status3;
unsigned int status4;
@@ -551,7 +551,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
{
#define G1_INTR0_BITS (GMAC1_HWTQ13_EOF_INT_BIT | GMAC1_HWTQ12_EOF_INT_BIT | GMAC1_HWTQ11_EOF_INT_BIT | GMAC1_HWTQ10_EOF_INT_BIT)
#define G0_INTR0_BITS (GMAC0_HWTQ03_EOF_INT_BIT | GMAC0_HWTQ02_EOF_INT_BIT | GMAC0_HWTQ01_EOF_INT_BIT | GMAC0_HWTQ00_EOF_INT_BIT)
-@@ -2563,7 +2578,7 @@
+@@ -2563,7 +2578,7 @@ if (1)
// because they should pass packets to upper layer
if (tp->port_id == 0)
{
@@ -560,7 +560,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
{
if (status1 & GMAC0_HWTQ03_EOF_INT_BIT)
tp->hwtxq[3].eof_cnt++;
-@@ -2574,50 +2589,51 @@
+@@ -2574,50 +2589,51 @@ if (1)
if (status1 & GMAC0_HWTQ00_EOF_INT_BIT)
tp->hwtxq[0].eof_cnt++;
}
@@ -648,7 +648,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
{
if (status1 & GMAC1_HWTQ13_EOF_INT_BIT)
tp->hwtxq[3].eof_cnt++;
-@@ -2629,14 +2645,14 @@
+@@ -2629,14 +2645,14 @@ if (1)
tp->hwtxq[0].eof_cnt++;
}
@@ -667,7 +667,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
BUG_ON(rx_poll_enabled == 1);
-@@ -2646,7 +2662,7 @@
+@@ -2646,7 +2662,7 @@ if (1)
data32 &= ~(DEFAULT_Q1_INT_BIT);
writel(data32, TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_ENABLE_1_REG);
@@ -676,7 +676,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
data32 = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_ENABLE_4_REG);
data32 &= ~DEFAULT_Q1_INT_BIT;
writel(data32, TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_ENABLE_4_REG);
-@@ -2656,24 +2672,21 @@
+@@ -2656,24 +2672,21 @@ if (1)
writel(data32, TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_4_REG);
#endif
@@ -708,7 +708,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
}
// Interrupt Status 0
-@@ -2814,676 +2827,93 @@
+@@ -2814,676 +2827,93 @@ if (1)
}
}
@@ -1459,7 +1459,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
{
case GMAC_PHY_GMII:
mii_write(tp->phy_addr,0x04,0x05e1); /* advertisement 100M full duplex, pause capable on */
-@@ -3552,6 +2982,7 @@
+@@ -3552,6 +2982,7 @@ void gmac_set_phy_status(struct net_devi
status.bits.link = LINK_DOWN;
// clear_bit(__LINK_STATE_START, &dev->state);
printk("Link Down (0x%04x) ", reg_val);
@@ -1467,7 +1467,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
if(Giga_switch == 1)
{
wan_port_id = 1;
-@@ -3565,6 +2996,7 @@
+@@ -3565,6 +2996,7 @@ void gmac_set_phy_status(struct net_devi
storlink_ctl.link[ tp->port_id] = 0;
#endif
}
@@ -1475,7 +1475,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
}
else
{
-@@ -3572,6 +3004,7 @@
+@@ -3572,6 +3004,7 @@ void gmac_set_phy_status(struct net_devi
status.bits.link = LINK_UP;
// set_bit(__LINK_STATE_START, &dev->state);
printk("Link Up (0x%04x) ",reg_val);
@@ -1483,7 +1483,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
if(Giga_switch == 1)
{
wan_port_id = 1;
-@@ -3585,6 +3018,7 @@
+@@ -3585,6 +3018,7 @@ void gmac_set_phy_status(struct net_devi
storlink_ctl.link[ tp->port_id] = 1;
#endif
}
@@ -1491,7 +1491,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
}
// value = mii_read(PHY_ADDR,0x05);
-@@ -3863,6 +3297,7 @@
+@@ -3863,6 +3297,7 @@ void gmac_get_phy_status(struct net_devi
}
}
status.bits.link = LINK_UP; /* link up */
@@ -1499,7 +1499,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
if(Giga_switch==1)
{
wan_port_id = 1;
-@@ -3874,6 +3309,7 @@
+@@ -3874,6 +3309,7 @@ void gmac_get_phy_status(struct net_devi
storlink_ctl.link[ tp->port_id] = 1;
#endif
}
@@ -1507,7 +1507,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
if ((ability & 0x20)==0x20)
{
if (tp->flow_control_enable == 0)
-@@ -3914,6 +3350,7 @@
+@@ -3914,6 +3350,7 @@ void gmac_get_phy_status(struct net_devi
else
{
status.bits.link = LINK_DOWN; /* link down */
@@ -1515,7 +1515,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
if(Giga_switch == 1)
{
wan_port_id = 1;
-@@ -3925,6 +3362,7 @@
+@@ -3925,6 +3362,7 @@ void gmac_get_phy_status(struct net_devi
storlink_ctl.link[ tp->port_id] = 0;
#endif
}
@@ -1523,7 +1523,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
if (tp->pre_phy_status == LINK_UP)
{
printk("GMAC-%d LINK_Down......\n",tp->port_id);
-@@ -4298,86 +3736,102 @@
+@@ -4298,86 +3736,102 @@ static void gmac_set_rx_mode(struct net_
}
#ifdef CONFIG_SL_NAPI
@@ -1687,7 +1687,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
{
good_frame = 0;
if (curr_desc->word0.bits32 & GMAC_RXDESC_0_T_derr)
-@@ -4388,7 +3842,6 @@
+@@ -4388,7 +3842,6 @@ static int gmac_rx_poll(struct net_devic
{
if (rx_status == 4 || rx_status == 7)
isPtr->rx_crc_errors++;
@@ -1695,7 +1695,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
}
#ifdef SL351x_GMAC_WORKAROUND
else if (pkt_size < 60)
-@@ -4407,17 +3860,32 @@
+@@ -4407,17 +3860,32 @@ static int gmac_rx_poll(struct net_devic
}
}
#endif
@@ -1733,7 +1733,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
#ifdef SL351x_GMAC_WORKAROUND
if (tp->short_frames_cnt >= GMAC_SHORT_FRAME_THRESHOLD)
-@@ -4432,225 +3900,118 @@
+@@ -4432,225 +3900,118 @@ static int gmac_rx_poll(struct net_devic
}
tp->short_frames_cnt = 0;
#endif
@@ -2017,7 +2017,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
}
#endif
-@@ -5114,6 +4475,7 @@
+@@ -5114,6 +4475,7 @@ void sl351x_poll_gmac_hanged_status(u32
{
sl351x_nat_workaround_cnt++;
sl351x_nat_workaround_handler();
@@ -2025,7 +2025,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
}
#endif
#endif
-@@ -5124,6 +4486,7 @@
+@@ -5124,6 +4486,7 @@ void sl351x_poll_gmac_hanged_status(u32
}
do_workaround:
@@ -2033,7 +2033,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
gmac_initialized = 0;
if (hanged_state)
-@@ -5290,6 +4653,7 @@
+@@ -5290,6 +4653,7 @@ static void sl351x_gmac_release_swtx_q(v
GMAC_SWTXQ_T *swtxq;
DMA_RWPTR_T rwptr;
@@ -2041,7 +2041,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
toe = (TOE_INFO_T *)&toe_private_data;
tp = (GMAC_INFO_T *)&toe->gmac[0];
for (i=0; i<GMAC_NUM; i++, tp++)
-@@ -5341,6 +4705,7 @@
+@@ -5341,6 +4705,7 @@ static void sl351x_gmac_release_rx_q(voi
volatile GMAC_RXDESC_T *curr_desc;
struct sk_buff *skb;
@@ -2049,7 +2049,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
toe = (TOE_INFO_T *)&toe_private_data;
tp = (GMAC_INFO_T *)&toe->gmac[0];
for (i=0; i<GMAC_NUM; i++, tp++)
-@@ -5374,6 +4739,7 @@
+@@ -5374,6 +4739,7 @@ static void sl351x_gmac_release_class_q(
volatile GMAC_RXDESC_T *curr_desc;
struct sk_buff *skb;
@@ -2057,7 +2057,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
toe = (TOE_INFO_T *)&toe_private_data;
classq = (CLASSQ_INFO_T *)&toe->classq[0];
for (i=0; i<TOE_CLASS_QUEUE_NUM; i++, classq++)
-@@ -5410,6 +4776,7 @@
+@@ -5410,6 +4776,7 @@ static void sl351x_gmac_release_toe_q(vo
GMAC_RXDESC_T *toe_curr_desc;
struct sk_buff *skb;
@@ -2065,10 +2065,10 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
toe = (TOE_INFO_T *)&toe_private_data;
toe_qhdr = (TOE_QHDR_T *)TOE_TOE_QUE_HDR_BASE;
for (i=0; i<TOE_TOE_QUEUE_NUM; i++, toe_qhdr++)
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_gmac.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_gmac.h
===================================================================
---- linux-2.6.23.16.orig/include/asm-arm/arch-sl2312/sl351x_gmac.h 2008-03-15 17:00:21.364762892 +0200
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_gmac.h 2008-03-15 17:01:08.367441241 +0200
+--- linux-2.6.23.17.orig/include/asm-arm/arch-sl2312/sl351x_gmac.h
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_gmac.h
@@ -107,7 +107,7 @@
* The base address and descriptor number are configured at
* DMA Queues Descriptor Ring Base Address/Size Register (offset 0x0004)
diff --git a/target/linux/storm/patches/1020-mtd.patch b/target/linux/storm/patches/1020-mtd.patch
index 7d5d7bc312..4a3e52789a 100644
--- a/target/linux/storm/patches/1020-mtd.patch
+++ b/target/linux/storm/patches/1020-mtd.patch
@@ -1,8 +1,8 @@
-Index: linux-2.6.23.16/drivers/mtd/chips/Kconfig
+Index: linux-2.6.23.17/drivers/mtd/chips/Kconfig
===================================================================
---- linux-2.6.23.16.orig/drivers/mtd/chips/Kconfig 2008-03-15 17:03:14.374622039 +0200
-+++ linux-2.6.23.16/drivers/mtd/chips/Kconfig 2008-03-15 17:03:17.874821522 +0200
-@@ -220,6 +220,13 @@
+--- linux-2.6.23.17.orig/drivers/mtd/chips/Kconfig
++++ linux-2.6.23.17/drivers/mtd/chips/Kconfig
+@@ -220,6 +220,13 @@ config MTD_ROM
This option enables basic support for ROM chips accessed through
a bus mapping driver.
@@ -16,10 +16,10 @@ Index: linux-2.6.23.16/drivers/mtd/chips/Kconfig
config MTD_ABSENT
tristate "Support for absent chips in bus mapping"
help
-Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
+Index: linux-2.6.23.17/drivers/mtd/chips/cfi_cmdset_0002.c
===================================================================
---- linux-2.6.23.16.orig/drivers/mtd/chips/cfi_cmdset_0002.c 2008-03-15 17:03:14.374622039 +0200
-+++ linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c 2008-03-15 17:03:17.874821522 +0200
+--- linux-2.6.23.17.orig/drivers/mtd/chips/cfi_cmdset_0002.c
++++ linux-2.6.23.17/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -39,10 +39,15 @@
#include <linux/mtd/cfi.h>
#include <linux/mtd/xip.h>
@@ -39,7 +39,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
#define MANUFACTURER_AMD 0x0001
#define MANUFACTURER_ATMEL 0x001F
-@@ -322,6 +327,13 @@
+@@ -322,6 +327,13 @@ struct mtd_info *cfi_cmdset_0002(struct
#endif
bootloc = extp->TopBottom;
@@ -53,7 +53,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
if ((bootloc != 2) && (bootloc != 3)) {
printk(KERN_WARNING "%s: CFI does not contain boot "
"bank location. Assuming top.\n", map->name);
-@@ -340,6 +352,9 @@
+@@ -340,6 +352,9 @@ struct mtd_info *cfi_cmdset_0002(struct
cfi->cfiq->EraseRegionInfo[j] = swap;
}
}
@@ -63,7 +63,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
/* Set the default CFI lock/unlock addresses */
cfi->addr_unlock1 = 0x555;
cfi->addr_unlock2 = 0x2aa;
-@@ -461,6 +476,7 @@
+@@ -461,6 +476,7 @@ static int __xipram chip_ready(struct ma
map_word d, t;
d = map_read(map, addr);
@@ -71,7 +71,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
t = map_read(map, addr);
return map_word_equal(map, d, t);
-@@ -626,7 +642,9 @@
+@@ -626,7 +642,9 @@ static void put_chip(struct map_info *ma
default:
printk(KERN_ERR "MTD: put_chip() called with oldstate %d!!\n", chip->oldstate);
}
@@ -81,7 +81,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
}
#ifdef CONFIG_MTD_XIP
-@@ -940,7 +958,9 @@
+@@ -940,7 +958,9 @@ static inline int do_read_secsi_onechip(
cfi_send_gen_cmd(0x90, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL);
cfi_send_gen_cmd(0x00, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL);
@@ -91,7 +91,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
spin_unlock(chip->mutex);
return 0;
-@@ -1005,7 +1025,10 @@
+@@ -1005,7 +1025,10 @@ static int __xipram do_write_oneword(str
*/
unsigned long uWriteTimeout = ( HZ / 1000 ) + 1;
int ret = 0;
@@ -103,7 +103,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
int retry_cnt = 0;
adr += chip->start;
-@@ -1037,9 +1060,15 @@
+@@ -1037,9 +1060,15 @@ static int __xipram do_write_oneword(str
ENABLE_VPP(map);
xip_disable(map, chip, adr);
retry:
@@ -119,7 +119,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
map_write(map, datum, adr);
chip->state = FL_WRITING;
-@@ -1072,7 +1101,13 @@
+@@ -1072,7 +1101,13 @@ static int __xipram do_write_oneword(str
}
if (chip_ready(map, adr))
@@ -134,7 +134,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
/* Latency issues. Drop the lock, wait a while and retry */
UDELAY(map, chip, adr, 1);
-@@ -1084,8 +1119,17 @@
+@@ -1084,8 +1119,17 @@ static int __xipram do_write_oneword(str
/* FIXME - should have reset delay before continuing */
if (++retry_cnt <= MAX_WORD_RETRIES)
@@ -153,7 +153,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
ret = -EIO;
}
xip_enable(map, chip, adr);
-@@ -1171,7 +1215,14 @@
+@@ -1171,7 +1215,14 @@ static int cfi_amdstd_write_words(struct
return 0;
}
}
@@ -169,7 +169,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
/* We are now aligned, write as much as possible */
while(len >= map_bankwidth(map)) {
map_word datum;
-@@ -1181,7 +1232,15 @@
+@@ -1181,7 +1232,15 @@ static int cfi_amdstd_write_words(struct
ret = do_write_oneword(map, &cfi->chips[chipnum],
ofs, datum);
if (ret)
@@ -185,7 +185,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
ofs += map_bankwidth(map);
buf += map_bankwidth(map);
-@@ -1189,19 +1248,38 @@
+@@ -1189,19 +1248,38 @@ static int cfi_amdstd_write_words(struct
len -= map_bankwidth(map);
if (ofs >> cfi->chipshift) {
@@ -224,7 +224,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
spin_lock(cfi->chips[chipnum].mutex);
if (cfi->chips[chipnum].state != FL_READY) {
-@@ -1221,7 +1299,11 @@
+@@ -1221,7 +1299,11 @@ static int cfi_amdstd_write_words(struct
#endif
goto retry1;
}
@@ -237,7 +237,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
tmp_buf = map_read(map, ofs + chipstart);
spin_unlock(cfi->chips[chipnum].mutex);
-@@ -1231,11 +1313,23 @@
+@@ -1231,11 +1313,23 @@ static int cfi_amdstd_write_words(struct
ret = do_write_oneword(map, &cfi->chips[chipnum],
ofs, tmp_buf);
if (ret)
@@ -262,7 +262,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
return 0;
}
-@@ -1275,6 +1369,7 @@
+@@ -1275,6 +1369,7 @@ static int __xipram do_write_buffer(stru
ENABLE_VPP(map);
xip_disable(map, chip, cmd_adr);
@@ -270,7 +270,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL);
cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, cfi->device_type, NULL);
//cfi_send_gen_cmd(0xA0, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL);
-@@ -1535,6 +1630,9 @@
+@@ -1535,6 +1630,9 @@ static int __xipram do_erase_oneblock(st
DECLARE_WAITQUEUE(wait, current);
int ret = 0;
@@ -280,7 +280,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
adr += chip->start;
spin_lock(chip->mutex);
-@@ -1613,6 +1711,9 @@
+@@ -1613,6 +1711,9 @@ static int __xipram do_erase_oneblock(st
chip->state = FL_READY;
put_chip(map, chip, adr);
spin_unlock(chip->mutex);
@@ -290,10 +290,10 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
return ret;
}
-Index: linux-2.6.23.16/drivers/mtd/chips/map_serial.c
+Index: linux-2.6.23.17/drivers/mtd/chips/map_serial.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/mtd/chips/map_serial.c 2008-03-15 17:03:17.874821522 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/mtd/chips/map_serial.c
@@ -0,0 +1,188 @@
+/*
+ * Common code to handle map devices which are simple ROM
@@ -483,11 +483,11 @@ Index: linux-2.6.23.16/drivers/mtd/chips/map_serial.c
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("David Woodhouse <dwmw2@infradead.org>");
+MODULE_DESCRIPTION("MTD chip driver for ROM chips");
-Index: linux-2.6.23.16/drivers/mtd/maps/Kconfig
+Index: linux-2.6.23.17/drivers/mtd/maps/Kconfig
===================================================================
---- linux-2.6.23.16.orig/drivers/mtd/maps/Kconfig 2008-03-15 17:03:14.374622039 +0200
-+++ linux-2.6.23.16/drivers/mtd/maps/Kconfig 2008-03-15 17:03:17.874821522 +0200
-@@ -614,5 +614,30 @@
+--- linux-2.6.23.17.orig/drivers/mtd/maps/Kconfig
++++ linux-2.6.23.17/drivers/mtd/maps/Kconfig
+@@ -614,5 +614,30 @@ config MTD_PLATRAM
This selection automatically selects the map_ram driver.
@@ -518,10 +518,10 @@ Index: linux-2.6.23.16/drivers/mtd/maps/Kconfig
+
endmenu
-Index: linux-2.6.23.16/drivers/mtd/maps/sl2312-flash-atmel.c
+Index: linux-2.6.23.17/drivers/mtd/maps/sl2312-flash-atmel.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/mtd/maps/sl2312-flash-atmel.c 2008-03-15 17:04:02.877385981 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/mtd/maps/sl2312-flash-atmel.c
@@ -0,0 +1,554 @@
+/*
+ * $Id: sl2312-flash-atmel.c,v 1.2 2006/06/05 02:35:57 middle Exp $
@@ -1077,10 +1077,10 @@ Index: linux-2.6.23.16/drivers/mtd/maps/sl2312-flash-atmel.c
+MODULE_AUTHOR("Plus Chen <plus@storlink.com.tw>");
+MODULE_DESCRIPTION("MTD map driver for Storlink Sword boards");
+
-Index: linux-2.6.23.16/drivers/mtd/maps/sl2312-flash-cfi.c
+Index: linux-2.6.23.17/drivers/mtd/maps/sl2312-flash-cfi.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/mtd/maps/sl2312-flash-cfi.c 2008-03-15 17:04:09.377756409 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/mtd/maps/sl2312-flash-cfi.c
@@ -0,0 +1,370 @@
+/*======================================================================
+
@@ -1452,10 +1452,10 @@ Index: linux-2.6.23.16/drivers/mtd/maps/sl2312-flash-cfi.c
+MODULE_AUTHOR("Storlink Ltd");
+MODULE_DESCRIPTION("CFI map driver");
+MODULE_LICENSE("GPL");
-Index: linux-2.6.23.16/drivers/mtd/maps/sl2312-flash-m25p80.c
+Index: linux-2.6.23.17/drivers/mtd/maps/sl2312-flash-m25p80.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/mtd/maps/sl2312-flash-m25p80.c 2008-03-15 17:04:15.378098557 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/mtd/maps/sl2312-flash-m25p80.c
@@ -0,0 +1,498 @@
+/*
+ * $Id: sl2312-flash-m25p80.c,v 1.2 2006/06/02 08:46:02 middle Exp $
@@ -1955,10 +1955,10 @@ Index: linux-2.6.23.16/drivers/mtd/maps/sl2312-flash-m25p80.c
+MODULE_AUTHOR("Plus Chen <plus@storlink.com.tw>");
+MODULE_DESCRIPTION("MTD map driver for Storlink Sword boards");
+
-Index: linux-2.6.23.16/drivers/mtd/maps/sl2312_flashmap.h
+Index: linux-2.6.23.17/drivers/mtd/maps/sl2312_flashmap.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/mtd/maps/sl2312_flashmap.h 2008-03-15 17:03:17.874821522 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/mtd/maps/sl2312_flashmap.h
@@ -0,0 +1,21 @@
+/*
+ * Please note that the name are used in mkflash script. Therefore
@@ -1981,10 +1981,10 @@ Index: linux-2.6.23.16/drivers/mtd/maps/sl2312_flashmap.h
+ { name: "cfg", offset: 0x007D0000, size: 0x00020000, },
+ { name: "FIS directory", offset: 0x007F0000, size: 0x00010000, }
+};
-Index: linux-2.6.23.16/drivers/mtd/maps/sl2312_flashmap.h.16MB
+Index: linux-2.6.23.17/drivers/mtd/maps/sl2312_flashmap.h.16MB
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/mtd/maps/sl2312_flashmap.h.16MB 2008-03-15 17:03:17.874821522 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/mtd/maps/sl2312_flashmap.h.16MB
@@ -0,0 +1,21 @@
+/*
+ * Please note that the name are used in mkflash script. Therefore
@@ -2007,10 +2007,10 @@ Index: linux-2.6.23.16/drivers/mtd/maps/sl2312_flashmap.h.16MB
+ { name: "CurConf", offset: 0x00F40000, size: 0x000A0000, },
+ { name: "FIS directory", offset: 0x00FE0000, size: 0x00020000, }
+};
-Index: linux-2.6.23.16/drivers/mtd/maps/sl2312_flashmap.h.8MB
+Index: linux-2.6.23.17/drivers/mtd/maps/sl2312_flashmap.h.8MB
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/mtd/maps/sl2312_flashmap.h.8MB 2008-03-15 17:03:17.874821522 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/mtd/maps/sl2312_flashmap.h.8MB
@@ -0,0 +1,21 @@
+/*
+ * Please note that the name are used in mkflash script. Therefore
@@ -2033,11 +2033,11 @@ Index: linux-2.6.23.16/drivers/mtd/maps/sl2312_flashmap.h.8MB
+ { name: "CurConf", offset: 0x007C0000, size: 0x00020000, },
+ { name: "FIS directory", offset: 0x007E0000, size: 0x00020000, }
+};
-Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
+Index: linux-2.6.23.17/drivers/mtd/mtdchar.c
===================================================================
---- linux-2.6.23.16.orig/drivers/mtd/mtdchar.c 2008-03-15 17:03:14.374622039 +0200
-+++ linux-2.6.23.16/drivers/mtd/mtdchar.c 2008-03-15 17:03:17.874821522 +0200
-@@ -59,6 +59,77 @@
+--- linux-2.6.23.17.orig/drivers/mtd/mtdchar.c
++++ linux-2.6.23.17/drivers/mtd/mtdchar.c
+@@ -59,6 +59,77 @@ struct mtd_file_info {
enum mtd_file_modes mode;
};
@@ -2115,7 +2115,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
static loff_t mtd_lseek (struct file *file, loff_t offset, int orig)
{
struct mtd_file_info *mfi = file->private_data;
-@@ -162,13 +233,21 @@
+@@ -162,13 +233,21 @@ static ssize_t mtd_read(struct file *fil
int len;
char *kbuf;
@@ -2138,7 +2138,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
/* FIXME: Use kiovec in 2.5 to lock down the user's buffers
and pass them directly to the MTD functions */
-@@ -178,8 +257,12 @@
+@@ -178,8 +257,12 @@ static ssize_t mtd_read(struct file *fil
else
kbuf=kmalloc(count, GFP_KERNEL);
@@ -2152,7 +2152,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
while (count) {
-@@ -224,6 +307,9 @@
+@@ -224,6 +307,9 @@ static ssize_t mtd_read(struct file *fil
*ppos += retlen;
if (copy_to_user(buf, kbuf, retlen)) {
kfree(kbuf);
@@ -2162,7 +2162,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
return -EFAULT;
}
else
-@@ -235,13 +321,19 @@
+@@ -235,13 +321,19 @@ static ssize_t mtd_read(struct file *fil
count = 0;
}
else {
@@ -2183,7 +2183,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
return total_retlen;
} /* mtd_read */
-@@ -255,24 +347,40 @@
+@@ -255,24 +347,40 @@ static ssize_t mtd_write(struct file *fi
int ret=0;
int len;
@@ -2227,7 +2227,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
while (count) {
-@@ -283,6 +391,9 @@
+@@ -283,6 +391,9 @@ static ssize_t mtd_write(struct file *fi
if (copy_from_user(kbuf, buf, len)) {
kfree(kbuf);
@@ -2237,7 +2237,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
return -EFAULT;
}
-@@ -323,11 +434,17 @@
+@@ -323,11 +434,17 @@ static ssize_t mtd_write(struct file *fi
}
else {
kfree(kbuf);
@@ -2255,7 +2255,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
return total_retlen;
} /* mtd_write */
-@@ -381,36 +498,67 @@
+@@ -381,36 +498,67 @@ static int mtd_ioctl(struct inode *inode
u_long size;
struct mtd_info_user info;
@@ -2326,7 +2326,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
break;
}
-@@ -433,7 +581,12 @@
+@@ -433,7 +581,12 @@ static int mtd_ioctl(struct inode *inode
struct erase_info *erase;
if(!(file->f_mode & 2))
@@ -2339,7 +2339,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
erase=kzalloc(sizeof(struct erase_info),GFP_KERNEL);
if (!erase)
-@@ -447,6 +600,9 @@
+@@ -447,6 +600,9 @@ static int mtd_ioctl(struct inode *inode
if (copy_from_user(&erase->addr, argp,
sizeof(struct erase_info_user))) {
kfree(erase);
@@ -2349,7 +2349,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
return -EFAULT;
}
erase->mtd = mtd;
-@@ -484,14 +640,26 @@
+@@ -484,14 +640,26 @@ static int mtd_ioctl(struct inode *inode
struct mtd_oob_buf buf;
struct mtd_oob_ops ops;
@@ -2379,7 +2379,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
if (!mtd->write_oob)
ret = -EOPNOTSUPP;
-@@ -499,8 +667,12 @@
+@@ -499,8 +667,12 @@ static int mtd_ioctl(struct inode *inode
ret = access_ok(VERIFY_READ, buf.ptr,
buf.length) ? 0 : EFAULT;
@@ -2393,7 +2393,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
ops.ooblen = buf.length;
ops.ooboffs = buf.start & (mtd->oobsize - 1);
-@@ -536,19 +708,35 @@
+@@ -536,19 +708,35 @@ static int mtd_ioctl(struct inode *inode
struct mtd_oob_buf buf;
struct mtd_oob_ops ops;
@@ -2433,7 +2433,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
ops.ooblen = buf.length;
ops.ooboffs = buf.start & (mtd->oobsize - 1);
-@@ -580,7 +768,12 @@
+@@ -580,7 +768,12 @@ static int mtd_ioctl(struct inode *inode
struct erase_info_user info;
if (copy_from_user(&info, argp, sizeof(info)))
@@ -2446,7 +2446,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
if (!mtd->lock)
ret = -EOPNOTSUPP;
-@@ -594,7 +787,12 @@
+@@ -594,7 +787,12 @@ static int mtd_ioctl(struct inode *inode
struct erase_info_user info;
if (copy_from_user(&info, argp, sizeof(info)))
@@ -2459,7 +2459,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
if (!mtd->unlock)
ret = -EOPNOTSUPP;
-@@ -629,11 +827,21 @@
+@@ -629,11 +827,21 @@ static int mtd_ioctl(struct inode *inode
loff_t offs;
if (copy_from_user(&offs, argp, sizeof(loff_t)))
@@ -2481,7 +2481,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
break;
}
-@@ -642,11 +850,21 @@
+@@ -642,11 +850,21 @@ static int mtd_ioctl(struct inode *inode
loff_t offs;
if (copy_from_user(&offs, argp, sizeof(loff_t)))
@@ -2503,7 +2503,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
break;
}
-@@ -654,8 +872,12 @@
+@@ -654,8 +872,12 @@ static int mtd_ioctl(struct inode *inode
case OTPSELECT:
{
int mode;
@@ -2517,7 +2517,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
mfi->mode = MTD_MODE_NORMAL;
-@@ -670,7 +892,12 @@
+@@ -670,7 +892,12 @@ static int mtd_ioctl(struct inode *inode
{
struct otp_info *buf = kmalloc(4096, GFP_KERNEL);
if (!buf)
@@ -2530,7 +2530,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
ret = -EOPNOTSUPP;
switch (mfi->mode) {
case MTD_MODE_OTP_FACTORY:
-@@ -701,12 +928,24 @@
+@@ -701,12 +928,24 @@ static int mtd_ioctl(struct inode *inode
{
struct otp_info info;
@@ -2558,7 +2558,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
ret = mtd->lock_user_prot_reg(mtd, info.start, info.length);
break;
}
-@@ -742,8 +981,12 @@
+@@ -742,8 +981,12 @@ static int mtd_ioctl(struct inode *inode
break;
case MTD_MODE_RAW:
@@ -2572,7 +2572,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
mfi->mode = arg;
case MTD_MODE_NORMAL:
-@@ -766,6 +1009,10 @@
+@@ -766,6 +1009,10 @@ static int mtd_ioctl(struct inode *inode
ret = -ENOTTY;
}
@@ -2583,11 +2583,11 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
return ret;
} /* memory_ioctl */
-Index: linux-2.6.23.16/drivers/mtd/nand/Kconfig
+Index: linux-2.6.23.17/drivers/mtd/nand/Kconfig
===================================================================
---- linux-2.6.23.16.orig/drivers/mtd/nand/Kconfig 2008-03-15 17:03:14.374622039 +0200
-+++ linux-2.6.23.16/drivers/mtd/nand/Kconfig 2008-03-15 17:03:17.874821522 +0200
-@@ -44,6 +44,13 @@
+--- linux-2.6.23.17.orig/drivers/mtd/nand/Kconfig
++++ linux-2.6.23.17/drivers/mtd/nand/Kconfig
+@@ -44,6 +44,13 @@ config MTD_NAND_AUTCPU12
This enables the driver for the autronix autcpu12 board to
access the SmartMediaCard.
@@ -2601,10 +2601,10 @@ Index: linux-2.6.23.16/drivers/mtd/nand/Kconfig
config MTD_NAND_EDB7312
tristate "Support for Cirrus Logic EBD7312 evaluation board"
depends on ARCH_EDB7312
-Index: linux-2.6.23.16/drivers/mtd/nand/sl2312-flash-nand.c
+Index: linux-2.6.23.17/drivers/mtd/nand/sl2312-flash-nand.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/mtd/nand/sl2312-flash-nand.c 2008-03-15 17:03:17.874821522 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/mtd/nand/sl2312-flash-nand.c
@@ -0,0 +1,2287 @@
+/*
+ * drivers/mtd/sl2312.c
@@ -4893,10 +4893,10 @@ Index: linux-2.6.23.16/drivers/mtd/nand/sl2312-flash-nand.c
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Alice Hennessy <ahennessy@mvista.com>");
+MODULE_DESCRIPTION("Glue layer for SmartMediaCard on Toshiba RBsl2312");
-Index: linux-2.6.23.16/drivers/mtd/nand/sl2312-flash-nand.h
+Index: linux-2.6.23.17/drivers/mtd/nand/sl2312-flash-nand.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/mtd/nand/sl2312-flash-nand.h 2008-03-15 17:04:25.878696749 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/mtd/nand/sl2312-flash-nand.h
@@ -0,0 +1,24 @@
+#ifndef SL2312_FLASH_NAND_H
+#define SL2312_FLASH_NAND_H
@@ -4922,10 +4922,10 @@ Index: linux-2.6.23.16/drivers/mtd/nand/sl2312-flash-nand.h
+
+
+#endif /* SL2312_FLASH_NAND_H */
-Index: linux-2.6.23.16/include/linux/mtd/kvctl.h
+Index: linux-2.6.23.17/include/linux/mtd/kvctl.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/linux/mtd/kvctl.h 2008-03-15 17:03:17.874821522 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/linux/mtd/kvctl.h
@@ -0,0 +1,40 @@
+#ifndef KVCTL_H
+#define KVCTL_H
@@ -4967,11 +4967,11 @@ Index: linux-2.6.23.16/include/linux/mtd/kvctl.h
+#define VCT_VLAN 8
+
+#endif
-Index: linux-2.6.23.16/drivers/mtd/maps/Makefile
+Index: linux-2.6.23.17/drivers/mtd/maps/Makefile
===================================================================
---- linux-2.6.23.16.orig/drivers/mtd/maps/Makefile 2008-03-15 17:03:14.374622039 +0200
-+++ linux-2.6.23.16/drivers/mtd/maps/Makefile 2008-03-15 17:03:17.874821522 +0200
-@@ -71,3 +71,7 @@
+--- linux-2.6.23.17.orig/drivers/mtd/maps/Makefile
++++ linux-2.6.23.17/drivers/mtd/maps/Makefile
+@@ -71,3 +71,7 @@ obj-$(CONFIG_MTD_PLATRAM) += plat-ram.o
obj-$(CONFIG_MTD_OMAP_NOR) += omap_nor.o
obj-$(CONFIG_MTD_MTX1) += mtx-1_flash.o
obj-$(CONFIG_MTD_TQM834x) += tqm834x.o
diff --git a/target/linux/storm/patches/1021-serial.patch b/target/linux/storm/patches/1021-serial.patch
index 90880d6467..5617d289d4 100644
--- a/target/linux/storm/patches/1021-serial.patch
+++ b/target/linux/storm/patches/1021-serial.patch
@@ -1,7 +1,7 @@
-Index: linux-2.6.23.16/drivers/serial/it8712.c
+Index: linux-2.6.23.17/drivers/serial/it8712.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/serial/it8712.c 2008-03-15 17:59:53.568330991 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/serial/it8712.c
@@ -0,0 +1,858 @@
+/*
+ * linux/drivers/char/serial_uart00.c
@@ -861,10 +861,10 @@ Index: linux-2.6.23.16/drivers/serial/it8712.c
+
+
+__initcall(it8712_init);
-Index: linux-2.6.23.16/drivers/serial/it8712.h
+Index: linux-2.6.23.17/drivers/serial/it8712.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/serial/it8712.h 2008-03-15 17:59:53.568330991 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/serial/it8712.h
@@ -0,0 +1,135 @@
+#define UART_RX 0 /* In: Receive buffer (DLAB=0) */
+#define UART_TX 0 /* Out: Transmit buffer (DLAB=0) */
@@ -1001,10 +1001,10 @@ Index: linux-2.6.23.16/drivers/serial/it8712.h
+
+
+
-Index: linux-2.6.23.16/drivers/serial/serial_it8712.c
+Index: linux-2.6.23.17/drivers/serial/serial_it8712.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/serial/serial_it8712.c 2008-03-15 17:59:53.568330991 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/serial/serial_it8712.c
@@ -0,0 +1,876 @@
+/*
+ * linux/drivers/char/serial_uart00.c
@@ -1882,10 +1882,10 @@ Index: linux-2.6.23.16/drivers/serial/serial_it8712.c
+
+
+__initcall(it8712_init);
-Index: linux-2.6.23.16/drivers/serial/serial_sl2312.c
+Index: linux-2.6.23.17/drivers/serial/serial_sl2312.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/serial/serial_sl2312.c 2008-03-17 12:30:50.290536619 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/serial/serial_sl2312.c
@@ -0,0 +1,827 @@
+/*
+ * linux/drivers/char/serial_uart00.c
@@ -2714,10 +2714,10 @@ Index: linux-2.6.23.16/drivers/serial/serial_sl2312.c
+
+
+__initcall(sl2312_init);
-Index: linux-2.6.23.16/include/linux/serial_core.h
+Index: linux-2.6.23.17/include/linux/serial_core.h
===================================================================
---- linux-2.6.23.16.orig/include/linux/serial_core.h 2008-03-15 17:59:22.566564448 +0200
-+++ linux-2.6.23.16/include/linux/serial_core.h 2008-03-15 17:59:53.568330991 +0200
+--- linux-2.6.23.17.orig/include/linux/serial_core.h
++++ linux-2.6.23.17/include/linux/serial_core.h
@@ -147,6 +147,10 @@
#define PORT_SB1250_DUART 77
@@ -2729,11 +2729,11 @@ Index: linux-2.6.23.16/include/linux/serial_core.h
#ifdef __KERNEL__
#include <linux/compiler.h>
-Index: linux-2.6.23.16/drivers/char/Makefile
+Index: linux-2.6.23.17/drivers/char/Makefile
===================================================================
---- linux-2.6.23.16.orig/drivers/char/Makefile 2008-03-15 17:59:22.566564448 +0200
-+++ linux-2.6.23.16/drivers/char/Makefile 2008-03-17 12:19:43.252524398 +0200
-@@ -70,6 +70,16 @@
+--- linux-2.6.23.17.orig/drivers/char/Makefile
++++ linux-2.6.23.17/drivers/char/Makefile
+@@ -70,6 +70,16 @@ obj-$(CONFIG_R3964) += n_r3964.o
obj-$(CONFIG_APPLICOM) += applicom.o
obj-$(CONFIG_SONYPI) += sonypi.o
obj-$(CONFIG_RTC) += rtc.o
@@ -2750,11 +2750,11 @@ Index: linux-2.6.23.16/drivers/char/Makefile
obj-$(CONFIG_HPET) += hpet.o
obj-$(CONFIG_GEN_RTC) += genrtc.o
obj-$(CONFIG_EFI_RTC) += efirtc.o
-Index: linux-2.6.23.16/drivers/serial/Kconfig
+Index: linux-2.6.23.17/drivers/serial/Kconfig
===================================================================
---- linux-2.6.23.16.orig/drivers/serial/Kconfig 2008-03-15 17:59:22.566564448 +0200
-+++ linux-2.6.23.16/drivers/serial/Kconfig 2008-03-15 17:59:53.568330991 +0200
-@@ -280,6 +280,56 @@
+--- linux-2.6.23.17.orig/drivers/serial/Kconfig
++++ linux-2.6.23.17/drivers/serial/Kconfig
+@@ -280,6 +280,56 @@ config SERIAL_8250_RM9K
comment "Non-8250 serial port support"
@@ -2811,11 +2811,11 @@ Index: linux-2.6.23.16/drivers/serial/Kconfig
config SERIAL_AMBA_PL010
tristate "ARM AMBA PL010 serial port support"
depends on ARM_AMBA && (BROKEN || !ARCH_VERSATILE)
-Index: linux-2.6.23.16/drivers/serial/Makefile
+Index: linux-2.6.23.17/drivers/serial/Makefile
===================================================================
---- linux-2.6.23.16.orig/drivers/serial/Makefile 2008-03-15 17:59:22.566564448 +0200
-+++ linux-2.6.23.16/drivers/serial/Makefile 2008-03-15 17:59:53.568330991 +0200
-@@ -62,5 +62,7 @@
+--- linux-2.6.23.17.orig/drivers/serial/Makefile
++++ linux-2.6.23.17/drivers/serial/Makefile
+@@ -62,5 +62,7 @@ obj-$(CONFIG_SERIAL_SGI_IOC3) += ioc3_se
obj-$(CONFIG_SERIAL_ATMEL) += atmel_serial.o
obj-$(CONFIG_SERIAL_UARTLITE) += uartlite.o
obj-$(CONFIG_SERIAL_NETX) += netx-serial.o
diff --git a/target/linux/storm/patches/1100-gpio.patch b/target/linux/storm/patches/1100-gpio.patch
index d2ea7279b0..34e9c52bdd 100644
--- a/target/linux/storm/patches/1100-gpio.patch
+++ b/target/linux/storm/patches/1100-gpio.patch
@@ -1,7 +1,7 @@
-Index: linux-2.6.23.16/drivers/char/gemini_gpio_dev.c
+Index: linux-2.6.23.17/drivers/char/gemini_gpio_dev.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/char/gemini_gpio_dev.c 2008-03-15 17:05:28.382258620 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/char/gemini_gpio_dev.c
@@ -0,0 +1,356 @@
+/*
+ * GPIO driver for Gemini board
@@ -359,11 +359,11 @@ Index: linux-2.6.23.16/drivers/char/gemini_gpio_dev.c
+MODULE_AUTHOR("Jonas Majauskas");
+MODULE_LICENSE("GPL");
+
-Index: linux-2.6.23.16/drivers/char/Kconfig
+Index: linux-2.6.23.17/drivers/char/Kconfig
===================================================================
---- linux-2.6.23.16.orig/drivers/char/Kconfig 2008-03-13 17:45:54.000221290 +0200
-+++ linux-2.6.23.16/drivers/char/Kconfig 2008-03-15 17:05:09.381175866 +0200
-@@ -1064,5 +1064,12 @@
+--- linux-2.6.23.17.orig/drivers/char/Kconfig
++++ linux-2.6.23.17/drivers/char/Kconfig
+@@ -1064,5 +1064,12 @@ config DEVPORT
source "drivers/s390/char/Kconfig"
@@ -376,11 +376,11 @@ Index: linux-2.6.23.16/drivers/char/Kconfig
+
endmenu
-Index: linux-2.6.23.16/drivers/char/Makefile
+Index: linux-2.6.23.17/drivers/char/Makefile
===================================================================
---- linux-2.6.23.16.orig/drivers/char/Makefile 2008-03-15 17:04:35.879266660 +0200
-+++ linux-2.6.23.16/drivers/char/Makefile 2008-03-15 17:05:09.381175866 +0200
-@@ -115,6 +115,7 @@
+--- linux-2.6.23.17.orig/drivers/char/Makefile
++++ linux-2.6.23.17/drivers/char/Makefile
+@@ -115,6 +115,7 @@ obj-$(CONFIG_IPMI_HANDLER) += ipmi/
obj-$(CONFIG_HANGCHECK_TIMER) += hangcheck-timer.o
obj-$(CONFIG_TCG_TPM) += tpm/