-diff --git a/drivers/net/arm/Kconfig b/drivers/net/arm/Kconfig
-index f9cc2b6..8eda6ee 100644
--- a/drivers/net/arm/Kconfig
+++ b/drivers/net/arm/Kconfig
-@@ -47,3 +47,11 @@ config EP93XX_ETH
+@@ -47,3 +47,11 @@
help
This is a driver for the ethernet hardware included in EP93xx CPUs.
Say Y if you are building a kernel for EP93xx based devices.
+ 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
-@@ -9,3 +9,4 @@ obj-$(CONFIG_ARM_ETHER3) += ether3.o
+@@ -9,3 +9,4 @@
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..c617b64
--- /dev/null
+++ b/drivers/net/arm/ixp4xx_eth.c
@@ -0,0 +1,1265 @@
+MODULE_ALIAS("platform:ixp4xx_eth");
+module_init(eth_init_module);
+module_exit(eth_cleanup_module);
-diff --git a/arch/arm/mach-ixp4xx/ixp4xx_npe.c b/arch/arm/mach-ixp4xx/ixp4xx_npe.c
-index 83c137e..63a23fa 100644
--- a/arch/arm/mach-ixp4xx/ixp4xx_npe.c
+++ b/arch/arm/mach-ixp4xx/ixp4xx_npe.c
-@@ -448,7 +448,9 @@ int npe_send_message(struct npe *npe, const void *msg, const char *what)
+@@ -448,7 +448,9 @@
return -ETIMEDOUT;
}
return 0;
}
-@@ -484,7 +486,9 @@ int npe_recv_message(struct npe *npe, void *msg, const char *what)
+@@ -484,7 +486,9 @@
return -ETIMEDOUT;
}
return 0;
}
-diff --git a/arch/arm/mach-ixp4xx/ixp4xx_qmgr.c b/arch/arm/mach-ixp4xx/ixp4xx_qmgr.c
-index e833013..fab94ea 100644
--- a/arch/arm/mach-ixp4xx/ixp4xx_qmgr.c
+++ b/arch/arm/mach-ixp4xx/ixp4xx_qmgr.c
-@@ -184,6 +184,8 @@ void qmgr_release_queue(unsigned int queue)
+@@ -184,6 +184,8 @@
case 3: mask[0] = 0xFF; break;
}