-diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
-index 4de432e..c4c810b 100644
---- a/arch/arm/kernel/setup.c
-+++ b/arch/arm/kernel/setup.c
-@@ -61,6 +61,7 @@ extern int root_mountflags;
+Index: linux-2.6.23.17/arch/arm/kernel/setup.c
+===================================================================
+--- linux-2.6.23.17.orig/arch/arm/kernel/setup.c
++++ linux-2.6.23.17/arch/arm/kernel/setup.c
+@@ -62,6 +62,7 @@ extern int root_mountflags;
extern void _stext, _text, _etext, __data_start, _edata, _end;
unsigned int processor_id;
unsigned int __machine_arch_type;
EXPORT_SYMBOL(__machine_arch_type);
-diff --git a/arch/arm/mach-ixp4xx/Kconfig b/arch/arm/mach-ixp4xx/Kconfig
-index 61b2dfc..e774447 100644
---- a/arch/arm/mach-ixp4xx/Kconfig
-+++ b/arch/arm/mach-ixp4xx/Kconfig
-@@ -189,6 +189,20 @@ config IXP4XX_INDIRECT_PCI
+Index: linux-2.6.23.17/arch/arm/mach-ixp4xx/Kconfig
+===================================================================
+--- linux-2.6.23.17.orig/arch/arm/mach-ixp4xx/Kconfig
++++ linux-2.6.23.17/arch/arm/mach-ixp4xx/Kconfig
+@@ -246,6 +246,20 @@ config IXP4XX_INDIRECT_PCI
need to use the indirect method instead. If you don't know
what you need, leave this option unselected.
endmenu
endif
-diff --git a/arch/arm/mach-ixp4xx/Makefile b/arch/arm/mach-ixp4xx/Makefile
-index 77e00ad..4bb97e1 100644
---- a/arch/arm/mach-ixp4xx/Makefile
-+++ b/arch/arm/mach-ixp4xx/Makefile
-@@ -30,3 +30,5 @@ obj-$(CONFIG_MACH_GATEWAY7001) += gateway7001-setup.o
- obj-$(CONFIG_MACH_WG302V2) += wg302v2-setup.o
+Index: linux-2.6.23.17/arch/arm/mach-ixp4xx/Makefile
+===================================================================
+--- linux-2.6.23.17.orig/arch/arm/mach-ixp4xx/Makefile
++++ linux-2.6.23.17/arch/arm/mach-ixp4xx/Makefile
+@@ -44,3 +44,5 @@ obj-$(CONFIG_MACH_SIDEWINDER) += sidewin
+ obj-$(CONFIG_MACH_AP1000) += ap1000-setup.o
obj-$(CONFIG_PCI) += $(obj-pci-$(CONFIG_PCI)) common-pci.o
+obj-$(CONFIG_IXP4XX_QMGR) += ixp4xx_qmgr.o
+obj-$(CONFIG_IXP4XX_NPE) += ixp4xx_npe.o
-diff --git a/arch/arm/mach-ixp4xx/ixdp425-setup.c b/arch/arm/mach-ixp4xx/ixdp425-setup.c
-index d5008d8..10b41c6 100644
---- a/arch/arm/mach-ixp4xx/ixdp425-setup.c
-+++ b/arch/arm/mach-ixp4xx/ixdp425-setup.c
-@@ -177,6 +177,31 @@ static struct platform_device ixdp425_uart = {
+Index: linux-2.6.23.17/arch/arm/mach-ixp4xx/ixdp425-setup.c
+===================================================================
+--- linux-2.6.23.17.orig/arch/arm/mach-ixp4xx/ixdp425-setup.c
++++ linux-2.6.23.17/arch/arm/mach-ixp4xx/ixdp425-setup.c
+@@ -177,6 +177,31 @@ static struct platform_device ixdp425_ua
.resource = ixdp425_uart_resources
};
+};
+
static struct platform_device *ixdp425_devices[] __initdata = {
- &ixdp425_i2c_controller,
+ &ixdp425_i2c_gpio,
&ixdp425_flash,
-@@ -184,7 +209,9 @@ static struct platform_device *ixdp425_devices[] __initdata = {
+@@ -184,7 +209,9 @@ static struct platform_device *ixdp425_d
defined(CONFIG_MTD_NAND_PLATFORM_MODULE)
&ixdp425_flash_nand,
#endif
};
static void __init ixdp425_init(void)
-diff --git a/arch/arm/mach-ixp4xx/ixp4xx_npe.c b/arch/arm/mach-ixp4xx/ixp4xx_npe.c
-new file mode 100644
-index 0000000..83c137e
+Index: linux-2.6.23.17/arch/arm/mach-ixp4xx/ixp4xx_npe.c
+===================================================================
--- /dev/null
-+++ b/arch/arm/mach-ixp4xx/ixp4xx_npe.c
++++ linux-2.6.23.17/arch/arm/mach-ixp4xx/ixp4xx_npe.c
@@ -0,0 +1,741 @@
+/*
+ * Intel IXP4xx Network Processor Engine driver for Linux
+EXPORT_SYMBOL(npe_send_message);
+EXPORT_SYMBOL(npe_recv_message);
+EXPORT_SYMBOL(npe_send_recv_message);
-diff --git a/arch/arm/mach-ixp4xx/ixp4xx_qmgr.c b/arch/arm/mach-ixp4xx/ixp4xx_qmgr.c
-new file mode 100644
-index 0000000..e833013
+Index: linux-2.6.23.17/arch/arm/mach-ixp4xx/ixp4xx_qmgr.c
+===================================================================
--- /dev/null
-+++ b/arch/arm/mach-ixp4xx/ixp4xx_qmgr.c
++++ linux-2.6.23.17/arch/arm/mach-ixp4xx/ixp4xx_qmgr.c
@@ -0,0 +1,274 @@
+/*
+ * Intel IXP4xx Queue Manager driver for Linux
+EXPORT_SYMBOL(qmgr_disable_irq);
+EXPORT_SYMBOL(qmgr_request_queue);
+EXPORT_SYMBOL(qmgr_release_queue);
-diff --git a/drivers/net/arm/Kconfig b/drivers/net/arm/Kconfig
-index f9cc2b6..9274d3f 100644
---- a/drivers/net/arm/Kconfig
-+++ b/drivers/net/arm/Kconfig
+Index: linux-2.6.23.17/drivers/net/arm/Kconfig
+===================================================================
+--- linux-2.6.23.17.orig/drivers/net/arm/Kconfig
++++ linux-2.6.23.17/drivers/net/arm/Kconfig
@@ -47,3 +47,13 @@ config EP93XX_ETH
help
This is a driver for the ethernet hardware included in EP93xx CPUs.
+ help
+ Say Y here if you want to use built-in Ethernet ports
+ on IXP4xx processor.
-diff --git a/drivers/net/arm/Makefile b/drivers/net/arm/Makefile
-index a4c8682..7c812ac 100644
---- a/drivers/net/arm/Makefile
-+++ b/drivers/net/arm/Makefile
+Index: linux-2.6.23.17/drivers/net/arm/Makefile
+===================================================================
+--- linux-2.6.23.17.orig/drivers/net/arm/Makefile
++++ linux-2.6.23.17/drivers/net/arm/Makefile
@@ -9,3 +9,4 @@ obj-$(CONFIG_ARM_ETHER3) += ether3.o
obj-$(CONFIG_ARM_ETHER1) += ether1.o
obj-$(CONFIG_ARM_AT91_ETHER) += at91_ether.o
obj-$(CONFIG_EP93XX_ETH) += ep93xx_eth.o
+obj-$(CONFIG_IXP4XX_ETH) += ixp4xx_eth.o
-diff --git a/drivers/net/arm/ixp4xx_eth.c b/drivers/net/arm/ixp4xx_eth.c
-new file mode 100644
-index 0000000..2c23f50
+Index: linux-2.6.23.17/drivers/net/arm/ixp4xx_eth.c
+===================================================================
--- /dev/null
-+++ b/drivers/net/arm/ixp4xx_eth.c
++++ linux-2.6.23.17/drivers/net/arm/ixp4xx_eth.c
@@ -0,0 +1,1259 @@
+/*
+ * Intel IXP4xx Ethernet driver for Linux
+MODULE_LICENSE("GPL v2");
+module_init(eth_init_module);
+module_exit(eth_cleanup_module);
-diff --git a/drivers/net/wan/Kconfig b/drivers/net/wan/Kconfig
-index a3df09e..94e7aa7 100644
---- a/drivers/net/wan/Kconfig
-+++ b/drivers/net/wan/Kconfig
+Index: linux-2.6.23.17/drivers/net/wan/Kconfig
+===================================================================
+--- linux-2.6.23.17.orig/drivers/net/wan/Kconfig
++++ linux-2.6.23.17/drivers/net/wan/Kconfig
@@ -334,6 +334,15 @@ config DSCC4_PCI_RST
Say Y if your card supports this feature.
config DLCI
tristate "Frame Relay DLCI support"
---help---
-diff --git a/drivers/net/wan/Makefile b/drivers/net/wan/Makefile
-index d61fef3..1b1d116 100644
---- a/drivers/net/wan/Makefile
-+++ b/drivers/net/wan/Makefile
+Index: linux-2.6.23.17/drivers/net/wan/Makefile
+===================================================================
+--- linux-2.6.23.17.orig/drivers/net/wan/Makefile
++++ linux-2.6.23.17/drivers/net/wan/Makefile
@@ -42,6 +42,7 @@ obj-$(CONFIG_C101) += c101.o
obj-$(CONFIG_WANXL) += wanxl.o
obj-$(CONFIG_PCI200SYN) += pci200syn.o
clean-files := wanxlfw.inc
$(obj)/wanxl.o: $(obj)/wanxlfw.inc
-diff --git a/drivers/net/wan/ixp4xx_hss.c b/drivers/net/wan/ixp4xx_hss.c
-new file mode 100644
-index 0000000..c4cdace
+Index: linux-2.6.23.17/drivers/net/wan/ixp4xx_hss.c
+===================================================================
--- /dev/null
-+++ b/drivers/net/wan/ixp4xx_hss.c
++++ linux-2.6.23.17/drivers/net/wan/ixp4xx_hss.c
@@ -0,0 +1,1270 @@
+/*
+ * Intel IXP4xx HSS (synchronous serial port) driver for Linux
+MODULE_LICENSE("GPL v2");
+module_init(hss_init_module);
+module_exit(hss_cleanup_module);
-diff --git a/include/asm-arm/arch-ixp4xx/cpu.h b/include/asm-arm/arch-ixp4xx/cpu.h
-index d2523b3..2fa3d6b 100644
---- a/include/asm-arm/arch-ixp4xx/cpu.h
-+++ b/include/asm-arm/arch-ixp4xx/cpu.h
+Index: linux-2.6.23.17/include/asm-arm/arch-ixp4xx/cpu.h
+===================================================================
+--- linux-2.6.23.17.orig/include/asm-arm/arch-ixp4xx/cpu.h
++++ linux-2.6.23.17/include/asm-arm/arch-ixp4xx/cpu.h
@@ -28,4 +28,19 @@ extern unsigned int processor_id;
#define cpu_is_ixp46x() ((processor_id & IXP4XX_PROCESSOR_ID_MASK) == \
IXP465_PROCESSOR_ID_VALUE)
+}
+
#endif /* _ASM_ARCH_CPU_H */
-diff --git a/include/asm-arm/arch-ixp4xx/hardware.h b/include/asm-arm/arch-ixp4xx/hardware.h
-index 297ceda..73e8dc3 100644
---- a/include/asm-arm/arch-ixp4xx/hardware.h
-+++ b/include/asm-arm/arch-ixp4xx/hardware.h
+Index: linux-2.6.23.17/include/asm-arm/arch-ixp4xx/hardware.h
+===================================================================
+--- linux-2.6.23.17.orig/include/asm-arm/arch-ixp4xx/hardware.h
++++ linux-2.6.23.17/include/asm-arm/arch-ixp4xx/hardware.h
@@ -27,13 +27,13 @@
#define pcibios_assign_all_busses() 1
/* Platform helper functions and definitions */
#include "platform.h"
-diff --git a/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h b/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h
-index 5d949d7..c704fe8 100644
---- a/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h
-+++ b/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h
+Index: linux-2.6.23.17/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h
+===================================================================
+--- linux-2.6.23.17.orig/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h
++++ linux-2.6.23.17/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h
@@ -15,10 +15,6 @@
*
*/
+ IXP4XX_FEATURE_XSCALE_MAX_FREQ)
+
#endif
-diff --git a/include/asm-arm/arch-ixp4xx/npe.h b/include/asm-arm/arch-ixp4xx/npe.h
-new file mode 100644
-index 0000000..37d0511
+Index: linux-2.6.23.17/include/asm-arm/arch-ixp4xx/npe.h
+===================================================================
--- /dev/null
-+++ b/include/asm-arm/arch-ixp4xx/npe.h
++++ linux-2.6.23.17/include/asm-arm/arch-ixp4xx/npe.h
@@ -0,0 +1,39 @@
+#ifndef __IXP4XX_NPE_H
+#define __IXP4XX_NPE_H
+void npe_release(struct npe *npe);
+
+#endif /* __IXP4XX_NPE_H */
-diff --git a/include/asm-arm/arch-ixp4xx/platform.h b/include/asm-arm/arch-ixp4xx/platform.h
-index 2a44d3d..695b9c4 100644
---- a/include/asm-arm/arch-ixp4xx/platform.h
-+++ b/include/asm-arm/arch-ixp4xx/platform.h
-@@ -77,8 +77,7 @@ extern unsigned long ixp4xx_exp_bus_size;
+Index: linux-2.6.23.17/include/asm-arm/arch-ixp4xx/platform.h
+===================================================================
+--- linux-2.6.23.17.orig/include/asm-arm/arch-ixp4xx/platform.h
++++ linux-2.6.23.17/include/asm-arm/arch-ixp4xx/platform.h
+@@ -77,8 +77,7 @@ extern unsigned long ixp4xx_exp_bus_size
/*
* The IXP4xx chips do not have an I2C unit, so GPIO lines are just
/*
* This structure provide a means for the board setup code
* to give information to th pata_ixp4xx driver. It is
-diff --git a/include/asm-arm/arch-ixp4xx/qmgr.h b/include/asm-arm/arch-ixp4xx/qmgr.h
-new file mode 100644
-index 0000000..1e52b95
+Index: linux-2.6.23.17/include/asm-arm/arch-ixp4xx/qmgr.h
+===================================================================
--- /dev/null
-+++ b/include/asm-arm/arch-ixp4xx/qmgr.h
++++ linux-2.6.23.17/include/asm-arm/arch-ixp4xx/qmgr.h
@@ -0,0 +1,126 @@
+/*
+ * Copyright (C) 2007 Krzysztof Halasa <khc@pm.waw.pl>
+}
+
+#endif
-diff --git a/include/asm-arm/arch-ixp4xx/uncompress.h b/include/asm-arm/arch-ixp4xx/uncompress.h
-index f7a35b7..34ef48f 100644
---- a/include/asm-arm/arch-ixp4xx/uncompress.h
-+++ b/include/asm-arm/arch-ixp4xx/uncompress.h
+Index: linux-2.6.23.17/include/asm-arm/arch-ixp4xx/uncompress.h
+===================================================================
+--- linux-2.6.23.17.orig/include/asm-arm/arch-ixp4xx/uncompress.h
++++ linux-2.6.23.17/include/asm-arm/arch-ixp4xx/uncompress.h
@@ -13,7 +13,7 @@
#ifndef _ARCH_UNCOMPRESS_H_
#define _ARCH_UNCOMPRESS_H_