From eda84c41d7be4c76c251d8fdbdbfd9e635f386ff Mon Sep 17 00:00:00 2001
From: juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Tue, 17 Jun 2008 14:30:18 +0000
Subject: [adm5120] switch to 2.6.25.7

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@11526 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 target/linux/adm5120/Makefile                      |   2 +-
 .../adm5120/files/drivers/ata/pata_rb153_cf.c      |  11 +-
 .../adm5120/files/drivers/usb/host/adm5120-dbg.c   | 212 ++++++++++--
 .../adm5120/files/drivers/usb/host/adm5120-hcd.c   |  20 +-
 .../linux/adm5120/files/drivers/usb/host/adm5120.h |   7 +
 .../linux/adm5120/patches-2.6.25/001-adm5120.patch | 111 -------
 .../adm5120/patches-2.6.25/002-adm5120_flash.patch |  22 --
 .../patches-2.6.25/003-adm5120_switch.patch        |  23 --
 .../adm5120/patches-2.6.25/005-adm5120_usb.patch   |  29 --
 .../adm5120/patches-2.6.25/006-adm5120_leds.patch  |  34 --
 .../adm5120/patches-2.6.25/007-adm5120_pci.patch   |  19 --
 .../009-adm5120_leds_switch_trigger.patch          |  22 --
 .../100-mtd_myloder_partition_parser.patch         |  35 --
 .../101-cfi_fixup_macronix_bootloc.patch           |  91 ------
 .../102-jedec_pmc_39lvxxx_chips.patch              |  68 ----
 .../adm5120/patches-2.6.25/103-mtd_trxsplit.patch  |  24 --
 .../patches-2.6.25/120-rb153_cf_driver.patch       |  26 --
 .../adm5120/patches-2.6.25/140-cmdline_hack.patch  |  15 -
 .../patches-2.6.25/200-amba_pl010_hacks.patch      | 293 -----------------
 .../patches-2.6.25/201-amba_bus_hacks.patch        |  13 -
 .../202-pci_disable_common_quirks.patch            |  46 ---
 .../patches-2.6.25/203-gpio_leds_brightness.patch  |  27 --
 .../adm5120/patches-2.6.25/310-adm5120_wdt.patch   |  31 --
 .../900-usb_bump_version_number.patch              |  11 -
 .../901-usb_convert_from_class_device.patch        | 107 ------
 .../902-usb_use_debugfs_instead_of_sysfs.patch     | 357 ---------------------
 .../910-pata_rb153_cf_fix_compiler_warning.patch   |  30 --
 target/linux/adm5120/patches/001-adm5120.patch     |  16 +-
 .../linux/adm5120/patches/002-adm5120_flash.patch  |   4 +-
 .../linux/adm5120/patches/003-adm5120_switch.patch |   4 +-
 target/linux/adm5120/patches/005-adm5120_usb.patch |   2 +-
 .../linux/adm5120/patches/006-adm5120_leds.patch   |   8 +-
 target/linux/adm5120/patches/007-adm5120_pci.patch |   2 +-
 .../patches/009-adm5120_leds_switch_trigger.patch  |   4 +-
 .../patches/100-mtd_myloder_partition_parser.patch |  10 +-
 .../patches/101-cfi_fixup_macronix_bootloc.patch   |  16 +-
 .../patches/102-jedec_pmc_39lvxxx_chips.patch      |  46 ++-
 .../adm5120/patches/120-rb153_cf_driver.patch      |   4 +-
 .../patches/202-pci_disable_common_quirks.patch    |  10 +-
 .../adm5120/patches/203-gpio_leds_brightness.patch |   4 +-
 target/linux/adm5120/patches/310-adm5120_wdt.patch |   6 +-
 target/linux/adm5120/router_be/config-2.6.25       | 269 ----------------
 target/linux/adm5120/router_be/config-default      |  41 +--
 target/linux/adm5120/router_le/config-2.6.25       | 291 -----------------
 target/linux/adm5120/router_le/config-default      |  32 +-
 45 files changed, 326 insertions(+), 2129 deletions(-)
 delete mode 100644 target/linux/adm5120/patches-2.6.25/001-adm5120.patch
 delete mode 100644 target/linux/adm5120/patches-2.6.25/002-adm5120_flash.patch
 delete mode 100644 target/linux/adm5120/patches-2.6.25/003-adm5120_switch.patch
 delete mode 100644 target/linux/adm5120/patches-2.6.25/005-adm5120_usb.patch
 delete mode 100644 target/linux/adm5120/patches-2.6.25/006-adm5120_leds.patch
 delete mode 100644 target/linux/adm5120/patches-2.6.25/007-adm5120_pci.patch
 delete mode 100644 target/linux/adm5120/patches-2.6.25/009-adm5120_leds_switch_trigger.patch
 delete mode 100644 target/linux/adm5120/patches-2.6.25/100-mtd_myloder_partition_parser.patch
 delete mode 100644 target/linux/adm5120/patches-2.6.25/101-cfi_fixup_macronix_bootloc.patch
 delete mode 100644 target/linux/adm5120/patches-2.6.25/102-jedec_pmc_39lvxxx_chips.patch
 delete mode 100644 target/linux/adm5120/patches-2.6.25/103-mtd_trxsplit.patch
 delete mode 100644 target/linux/adm5120/patches-2.6.25/120-rb153_cf_driver.patch
 delete mode 100644 target/linux/adm5120/patches-2.6.25/140-cmdline_hack.patch
 delete mode 100644 target/linux/adm5120/patches-2.6.25/200-amba_pl010_hacks.patch
 delete mode 100644 target/linux/adm5120/patches-2.6.25/201-amba_bus_hacks.patch
 delete mode 100644 target/linux/adm5120/patches-2.6.25/202-pci_disable_common_quirks.patch
 delete mode 100644 target/linux/adm5120/patches-2.6.25/203-gpio_leds_brightness.patch
 delete mode 100644 target/linux/adm5120/patches-2.6.25/310-adm5120_wdt.patch
 delete mode 100644 target/linux/adm5120/patches-2.6.25/900-usb_bump_version_number.patch
 delete mode 100644 target/linux/adm5120/patches-2.6.25/901-usb_convert_from_class_device.patch
 delete mode 100644 target/linux/adm5120/patches-2.6.25/902-usb_use_debugfs_instead_of_sysfs.patch
 delete mode 100644 target/linux/adm5120/patches-2.6.25/910-pata_rb153_cf_fix_compiler_warning.patch
 delete mode 100644 target/linux/adm5120/router_be/config-2.6.25
 delete mode 100644 target/linux/adm5120/router_le/config-2.6.25

(limited to 'target/linux')

diff --git a/target/linux/adm5120/Makefile b/target/linux/adm5120/Makefile
index 5ff0e69ea..eefc244f1 100644
--- a/target/linux/adm5120/Makefile
+++ b/target/linux/adm5120/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 BOARD:=adm5120
 BOARDNAME:=Infineon/ADMtek ADM5120
-LINUX_VERSION:=2.6.24.7
+LINUX_VERSION:=2.6.25.7
 SUBTARGETS:=router_le router_be
 INITRAMFS_EXTRA_FILES:=
 
diff --git a/target/linux/adm5120/files/drivers/ata/pata_rb153_cf.c b/target/linux/adm5120/files/drivers/ata/pata_rb153_cf.c
index 7dd697721..8c0a0a36c 100644
--- a/target/linux/adm5120/files/drivers/ata/pata_rb153_cf.c
+++ b/target/linux/adm5120/files/drivers/ata/pata_rb153_cf.c
@@ -68,20 +68,23 @@ static void rb153_pata_exec_command(struct ata_port *ap,
 	rb153_pata_finish_io(ap);
 }
 
-static void rb153_pata_data_xfer(struct ata_device *adev, unsigned char *buf,
+static unsigned int rb153_pata_data_xfer(struct ata_device *adev, unsigned char *buf,
 				unsigned int buflen, int write_data)
 {
 	void __iomem *ioaddr = adev->link->ap->ioaddr.data_addr;
-
+	unsigned int t;
+	
+	t = buflen;	
 	if (write_data) {
-		for (; buflen > 0; buflen--, buf++)
+		for (; t > 0; t--, buf++)
 			writeb(*buf, ioaddr);
 	} else {
-		for (; buflen > 0; buflen--, buf++)
+		for (; t > 0; t--, buf++)
 			*buf = readb(ioaddr);
 	}
 
 	rb153_pata_finish_io(adev->link->ap);
+	return buflen;
 }
 
 static void rb153_pata_freeze(struct ata_port *ap)
diff --git a/target/linux/adm5120/files/drivers/usb/host/adm5120-dbg.c b/target/linux/adm5120/files/drivers/usb/host/adm5120-dbg.c
index 3eec94a38..a6eb67cb6 100644
--- a/target/linux/adm5120/files/drivers/usb/host/adm5120-dbg.c
+++ b/target/linux/adm5120/files/drivers/usb/host/adm5120-dbg.c
@@ -390,6 +390,42 @@ static inline void remove_debug_files(struct admhcd *bus) { }
 
 #else
 
+static int debug_async_open(struct inode *, struct file *);
+static int debug_periodic_open(struct inode *, struct file *);
+static int debug_registers_open(struct inode *, struct file *);
+static int debug_async_open(struct inode *, struct file *);
+static ssize_t debug_output(struct file*, char __user*, size_t, loff_t*);
+static int debug_close(struct inode *, struct file *);
+
+static const struct file_operations debug_async_fops = {
+	.owner		= THIS_MODULE,
+	.open		= debug_async_open,
+	.read		= debug_output,
+	.release	= debug_close,
+};
+static const struct file_operations debug_periodic_fops = {
+	.owner		= THIS_MODULE,
+	.open		= debug_periodic_open,
+	.read		= debug_output,
+	.release	= debug_close,
+};
+static const struct file_operations debug_registers_fops = {
+	.owner		= THIS_MODULE,
+	.open		= debug_registers_open,
+	.read		= debug_output,
+	.release	= debug_close,
+};
+
+static struct dentry *admhc_debug_root;
+
+struct debug_buffer {
+	ssize_t (*fill_func)(struct debug_buffer *);    /* fill method */
+	struct device *dev;
+	struct mutex mutex;     /* protect filling of buffer */
+	size_t count;           /* number of characters filled into buffer */
+	char *page;
+};
+
 static ssize_t
 show_list(struct admhcd *ahcd, char *buf, size_t count, struct ed *ed)
 {
@@ -455,8 +491,7 @@ show_list(struct admhcd *ahcd, char *buf, size_t count, struct ed *ed)
 	return count - size;
 }
 
-static ssize_t
-show_async(struct class_device *class_dev, char *buf)
+static ssize_t fill_async_buffer(struct debug_buffer *buf)
 {
 	struct usb_bus		*bus;
 	struct usb_hcd		*hcd;
@@ -464,24 +499,22 @@ show_async(struct class_device *class_dev, char *buf)
 	size_t			temp;
 	unsigned long		flags;
 
-	bus = class_get_devdata(class_dev);
+	bus = dev_get_drvdata(buf->dev);
 	hcd = bus_to_hcd(bus);
 	ahcd = hcd_to_admhcd(hcd);
 
 	/* display control and bulk lists together, for simplicity */
 	spin_lock_irqsave(&ahcd->lock, flags);
-	temp = show_list(ahcd, buf, PAGE_SIZE, ahcd->ed_head);
+	temp = show_list(ahcd, buf->page, buf->count, ahcd->ed_head);
 	spin_unlock_irqrestore(&ahcd->lock, flags);
 
 	return temp;
 }
-static CLASS_DEVICE_ATTR(async, S_IRUGO, show_async, NULL);
 
 
 #define DBG_SCHED_LIMIT 64
 
-static ssize_t
-show_periodic(struct class_device *class_dev, char *buf)
+static ssize_t fill_periodic_buffer(struct debug_buffer *buf)
 {
 	struct usb_bus		*bus;
 	struct usb_hcd		*hcd;
@@ -496,10 +529,10 @@ show_periodic(struct class_device *class_dev, char *buf)
 		return 0;
 	seen_count = 0;
 
-	bus = class_get_devdata(class_dev);
+	bus = dev_get_drvdata(buf->dev);
 	hcd = bus_to_hcd(bus);
 	ahcd = hcd_to_admhcd(hcd);
-	next = buf;
+	next = buf->page;
 	size = PAGE_SIZE;
 
 	temp = scnprintf(next, size, "size = %d\n", NUM_INTS);
@@ -574,13 +607,11 @@ show_periodic(struct class_device *class_dev, char *buf)
 
 	return PAGE_SIZE - size;
 }
-static CLASS_DEVICE_ATTR(periodic, S_IRUGO, show_periodic, NULL);
 
 
 #undef DBG_SCHED_LIMIT
 
-static ssize_t
-show_registers(struct class_device *class_dev, char *buf)
+static ssize_t fill_registers_buffer(struct debug_buffer *buf)
 {
 	struct usb_bus		*bus;
 	struct usb_hcd		*hcd;
@@ -591,11 +622,11 @@ show_registers(struct class_device *class_dev, char *buf)
 	char			*next;
 	u32			rdata;
 
-	bus = class_get_devdata(class_dev);
+	bus = dev_get_drvdata(buf->dev);
 	hcd = bus_to_hcd(bus);
 	ahcd = hcd_to_admhcd(hcd);
 	regs = ahcd->regs;
-	next = buf;
+	next = buf->page;
 	size = PAGE_SIZE;
 
 	spin_lock_irqsave(&ahcd->lock, flags);
@@ -656,27 +687,154 @@ done:
 	spin_unlock_irqrestore(&ahcd->lock, flags);
 	return PAGE_SIZE - size;
 }
-static CLASS_DEVICE_ATTR(registers, S_IRUGO, show_registers, NULL);
 
 
-static inline void create_debug_files (struct admhcd *ahcd)
+static struct debug_buffer *alloc_buffer(struct device *dev,
+				ssize_t (*fill_func)(struct debug_buffer *))
 {
-	struct class_device *cldev = admhcd_to_hcd(ahcd)->self.class_dev;
-	int retval;
+	struct debug_buffer *buf;
 
-	retval = class_device_create_file(cldev, &class_device_attr_async);
-	retval = class_device_create_file(cldev, &class_device_attr_periodic);
-	retval = class_device_create_file(cldev, &class_device_attr_registers);
-	admhc_dbg(ahcd, "created debug files\n");
+	buf = kzalloc(sizeof(struct debug_buffer), GFP_KERNEL);
+
+	if (buf) {
+		buf->dev = dev;
+		buf->fill_func = fill_func;
+		mutex_init(&buf->mutex);
+	}
+
+	return buf;
+}
+
+static int fill_buffer(struct debug_buffer *buf)
+{
+	int ret = 0;
+
+	if (!buf->page)
+		buf->page = (char *)get_zeroed_page(GFP_KERNEL);
+
+	if (!buf->page) {
+		ret = -ENOMEM;
+		goto out;
+	}
+
+	ret = buf->fill_func(buf);
+
+	if (ret >= 0) {
+		buf->count = ret;
+		ret = 0;
+	}
+
+out:
+	return ret;
 }
 
-static inline void remove_debug_files (struct admhcd *ahcd)
+static ssize_t debug_output(struct file *file, char __user *user_buf,
+			size_t len, loff_t *offset)
 {
-	struct class_device *cldev = admhcd_to_hcd(ahcd)->self.class_dev;
+	struct debug_buffer *buf = file->private_data;
+	int ret = 0;
+
+	mutex_lock(&buf->mutex);
+	if (buf->count == 0) {
+		ret = fill_buffer(buf);
+		if (ret != 0) {
+			mutex_unlock(&buf->mutex);
+			goto out;
+		}
+	}
+	mutex_unlock(&buf->mutex);
+
+	ret = simple_read_from_buffer(user_buf, len, offset,
+					buf->page, buf->count);
 
-	class_device_remove_file(cldev, &class_device_attr_async);
-	class_device_remove_file(cldev, &class_device_attr_periodic);
-	class_device_remove_file(cldev, &class_device_attr_registers);
+out:
+	return ret;
+}
+
+static int debug_close(struct inode *inode, struct file *file)
+{
+	struct debug_buffer *buf = file->private_data;
+
+	if (buf) {
+		if (buf->page)
+			free_page((unsigned long)buf->page);
+		kfree(buf);
+	}
+
+	return 0;
+}
+
+static int debug_async_open(struct inode *inode, struct file *file)
+{
+	file->private_data = alloc_buffer(inode->i_private, fill_async_buffer);
+
+	return file->private_data ? 0 : -ENOMEM;
+}
+
+static int debug_periodic_open(struct inode *inode, struct file *file)
+{
+	file->private_data = alloc_buffer(inode->i_private,
+						fill_periodic_buffer);
+
+	return file->private_data ? 0 : -ENOMEM;
+}
+
+static int debug_registers_open(struct inode *inode, struct file *file)
+{
+	file->private_data = alloc_buffer(inode->i_private,
+						fill_registers_buffer);
+
+	return file->private_data ? 0 : -ENOMEM;
+}
+
+static inline void create_debug_files(struct admhcd *ahcd)
+{
+	struct usb_bus *bus = &admhcd_to_hcd(ahcd)->self;
+	struct device *dev = bus->dev;
+
+	ahcd->debug_dir = debugfs_create_dir(bus->bus_name, admhc_debug_root);
+	if (!ahcd->debug_dir)
+		goto dir_error;
+
+	ahcd->debug_async = debugfs_create_file("async", S_IRUGO,
+						ahcd->debug_dir, dev,
+						&debug_async_fops);
+	if (!ahcd->debug_async)
+		goto async_error;
+
+	ahcd->debug_periodic = debugfs_create_file("periodic", S_IRUGO,
+						ahcd->debug_dir, dev,
+						&debug_periodic_fops);
+	if (!ahcd->debug_periodic)
+		goto periodic_error;
+
+	ahcd->debug_registers = debugfs_create_file("registers", S_IRUGO,
+						ahcd->debug_dir, dev,
+						&debug_registers_fops);
+	if (!ahcd->debug_registers)
+		goto registers_error;
+
+	admhc_dbg(ahcd, "created debug files\n");
+	return;
+
+registers_error:
+	debugfs_remove(ahcd->debug_periodic);
+periodic_error:
+	debugfs_remove(ahcd->debug_async);
+async_error:
+	debugfs_remove(ahcd->debug_dir);
+dir_error:
+	ahcd->debug_periodic = NULL;
+	ahcd->debug_async = NULL;
+	ahcd->debug_dir = NULL;
+}
+
+static inline void remove_debug_files(struct admhcd *ahcd)
+{
+	debugfs_remove(ahcd->debug_registers);
+	debugfs_remove(ahcd->debug_periodic);
+	debugfs_remove(ahcd->debug_async);
+	debugfs_remove(ahcd->debug_dir);
 }
 
 #endif
diff --git a/target/linux/adm5120/files/drivers/usb/host/adm5120-hcd.c b/target/linux/adm5120/files/drivers/usb/host/adm5120-hcd.c
index 78b1aef13..72a252530 100644
--- a/target/linux/adm5120/files/drivers/usb/host/adm5120-hcd.c
+++ b/target/linux/adm5120/files/drivers/usb/host/adm5120-hcd.c
@@ -35,6 +35,7 @@
 #include <linux/dma-mapping.h>
 #include <linux/dmapool.h>
 #include <linux/reboot.h>
+#include <linux/debugfs.h>
 
 #include <asm/io.h>
 #include <asm/irq.h>
@@ -45,7 +46,7 @@
 #include "../core/hcd.h"
 #include "../core/hub.h"
 
-#define DRIVER_VERSION	"0.24.0"
+#define DRIVER_VERSION	"0.25.0"
 #define DRIVER_AUTHOR	"Gabor Juhos <juhosg at openwrt.org>"
 #define DRIVER_DESC	"ADMtek USB 1.1 Host Controller Driver"
 
@@ -799,6 +800,14 @@ static int __init admhc_hcd_mod_init(void)
 	pr_info("%s: block sizes: ed %Zd td %Zd\n", hcd_name,
 		sizeof (struct ed), sizeof (struct td));
 
+#ifdef DEBUG
+	admhc_debug_root = debugfs_create_dir("admhc", NULL);
+	if (!admhc_debug_root) {
+		ret = -ENOENT;
+		goto error_debug;
+	}
+#endif
+
 #ifdef PLATFORM_DRIVER
 	ret = platform_driver_register(&PLATFORM_DRIVER);
 	if (ret < 0)
@@ -810,6 +819,12 @@ static int __init admhc_hcd_mod_init(void)
 #ifdef PLATFORM_DRIVER
 	platform_driver_unregister(&PLATFORM_DRIVER);
 error_platform:
+#endif
+
+#ifdef DEBUG
+	debugfs_remove(admhc_debug_root);
+	admhc_debug_root = NULL;
+error_debug:
 #endif
 	return ret;
 }
@@ -818,6 +833,9 @@ module_init(admhc_hcd_mod_init);
 static void __exit admhc_hcd_mod_exit(void)
 {
 	platform_driver_unregister(&PLATFORM_DRIVER);
+#ifdef DEBUG
+	debugfs_remove(admhc_debug_root);
+#endif
 }
 module_exit(admhc_hcd_mod_exit);
 
diff --git a/target/linux/adm5120/files/drivers/usb/host/adm5120.h b/target/linux/adm5120/files/drivers/usb/host/adm5120.h
index a3acfe53b..fbb9b3a12 100644
--- a/target/linux/adm5120/files/drivers/usb/host/adm5120.h
+++ b/target/linux/adm5120/files/drivers/usb/host/adm5120.h
@@ -431,6 +431,13 @@ struct admhcd {
 #define	OHCI_QUIRK_BE_MMIO	0x10			/* BE registers */
 #define	OHCI_QUIRK_ZFMICRO	0x20			/* Compaq ZFMicro chipset*/
 	// there are also chip quirks/bugs in init logic
+
+#ifdef DEBUG
+	struct dentry		*debug_dir;
+	struct dentry		*debug_async;
+	struct dentry		*debug_periodic;
+	struct dentry		*debug_registers;
+#endif
 };
 
 /* convert between an hcd pointer and the corresponding ahcd_hcd */
diff --git a/target/linux/adm5120/patches-2.6.25/001-adm5120.patch b/target/linux/adm5120/patches-2.6.25/001-adm5120.patch
deleted file mode 100644
index 84d0a8d2f..000000000
--- a/target/linux/adm5120/patches-2.6.25/001-adm5120.patch
+++ /dev/null
@@ -1,111 +0,0 @@
---- a/arch/mips/Kconfig
-+++ b/arch/mips/Kconfig
-@@ -18,6 +18,20 @@
- 	prompt "System type"
- 	default SGI_IP22
- 
-+config MIPS_ADM5120
-+	bool "ADM5120 SoC based machines"
-+	select CEVT_R4K
-+	select CSRC_R4K
-+	select SYS_HAS_CPU_MIPS32_R1
-+	select SYS_HAS_EARLY_PRINTK
-+	select DMA_NONCOHERENT
-+	select HW_HAS_PCI
-+	select IRQ_CPU
-+	select SYS_SUPPORTS_LITTLE_ENDIAN
-+	select SYS_SUPPORTS_BIG_ENDIAN
-+	select SYS_SUPPORTS_32BIT_KERNEL
-+	select GENERIC_GPIO
-+
- config MACH_ALCHEMY
- 	bool "Alchemy processor based machines"
- 
-@@ -683,6 +697,7 @@
- 
- endchoice
- 
-+source "arch/mips/adm5120/Kconfig"
- source "arch/mips/au1000/Kconfig"
- source "arch/mips/basler/excite/Kconfig"
- source "arch/mips/jazz/Kconfig"
---- a/arch/mips/Makefile
-+++ b/arch/mips/Makefile
-@@ -174,6 +174,16 @@
- load-$(CONFIG_MACH_JAZZ)	+= 0xffffffff80080000
- 
- #
-+# ADMtek 5120
-+#
-+
-+libs-$(CONFIG_MIPS_ADM5120)	+= arch/mips/adm5120/prom/
-+core-$(CONFIG_MIPS_ADM5120)	+= arch/mips/adm5120/
-+core-$(CONFIG_MIPS_ADM5120)	+= arch/mips/adm5120/boards/
-+cflags-$(CONFIG_MIPS_ADM5120)	+= -Iinclude/asm-mips/mach-adm5120
-+load-$(CONFIG_MIPS_ADM5120)	+= 0xffffffff80001000
-+
-+#
- # Common Alchemy Au1x00 stuff
- #
- core-$(CONFIG_SOC_AU1X00)	+= arch/mips/au1000/common/
---- a/include/asm-mips/bootinfo.h
-+++ b/include/asm-mips/bootinfo.h
-@@ -94,6 +94,58 @@
- #define MACH_MSP7120_FPGA       5	/* PMC-Sierra MSP7120 Emulation */
- #define MACH_MSP_OTHER        255	/* PMC-Sierra unknown board type */
- 
-+/*
-+ * Valid machtype for group ADMtek ADM5120
-+ */
-+#define MACH_ADM5120_GENERIC	0	/* Generic board */
-+#define MACH_ADM5120_WP54G_WRT	1	/* Compex WP54G-WRT */
-+#define MACH_ADM5120_WP54G	2	/* Compex WP54G */
-+#define MACH_ADM5120_WP54AG	3	/* Compex WP54AG */
-+#define MACH_ADM5120_WPP54G	4	/* Compex WPP54G */
-+#define MACH_ADM5120_WPP54AG	5	/* Compex WPP54AG */
-+#define MACH_ADM5120_NP28G	6	/* Compex NP28G */
-+#define MACH_ADM5120_NP28GHS	7	/* Compex NP28G HotSpot */
-+#define MACH_ADM5120_NP27G	8	/* Compex NP27G */
-+#define MACH_ADM5120_WP54Gv1C	9	/* Compex WP54G version 1C */
-+#define MACH_ADM5120_RB_111	10	/* Mikrotik RouterBOARD 111 */
-+#define MACH_ADM5120_RB_112	11	/* Mikrotik RouterBOARD 112 */
-+#define MACH_ADM5120_RB_133	12	/* Mikrotik RouterBOARD 133 */
-+#define MACH_ADM5120_RB_133C	13	/* Mikrotik RouterBOARD 133c */
-+#define MACH_ADM5120_RB_150	14	/* Mikrotik RouterBOARD 150 */
-+#define MACH_ADM5120_RB_153	15	/* Mikrotik RouterBOARD 153 */
-+#define MACH_ADM5120_HS100	16	/* ZyXEL HomeSafe 100/100W */
-+#define MACH_ADM5120_P334	17	/* ZyXEL Prestige 334 */
-+#define MACH_ADM5120_P334U	18	/* ZyXEL Prestige 334U */
-+#define MACH_ADM5120_P334W	19	/* ZyXEL Prestige 334W */
-+#define MACH_ADM5120_P334WH	20	/* ZyXEL Prestige 334WH */
-+#define MACH_ADM5120_P334WHD	21	/* ZyXEL Prestige 334WHD */
-+#define MACH_ADM5120_P334WT	22	/* ZyXEL Prestige 334WT */
-+#define MACH_ADM5120_P335	23	/* ZyXEL Prestige 335/335WT */
-+#define MACH_ADM5120_P335PLUS	24	/* ZyXEL Prestige 335Plus */
-+#define MACH_ADM5120_P335U	25	/* ZyXEL Prestige 335U */
-+#define MACH_ADM5120_ES2108	26	/* ZyXEL Ethernet Switch 2108 */
-+#define MACH_ADM5120_ES2108F	27	/* ZyXEL Ethernet Switch 2108-F */
-+#define MACH_ADM5120_ES2108G	28	/* ZyXEL Ethernet Switch 2108-G */
-+#define MACH_ADM5120_ES2108LC	29	/* ZyXEL Ethernet Switch 2108-LC */
-+#define MACH_ADM5120_ES2108PWR	30	/* ZyXEL Ethernet Switch 2108-PWR */
-+#define MACH_ADM5120_ES2024A	31	/* ZyXEL Ethernet Switch 2024A */
-+#define MACH_ADM5120_ES2024PWR	32	/* ZyXEL Ethernet Switch 2024PWR */
-+#define MACH_ADM5120_CAS630	33	/* Cellvision CAS-630/630W */
-+#define MACH_ADM5120_CAS670	34	/* Cellvision CAS-670/670W */
-+#define MACH_ADM5120_CAS700	36	/* Cellvision CAS-700/700W */
-+#define MACH_ADM5120_CAS771	37	/* Cellvision CAS-771/771W */
-+#define MACH_ADM5120_CAS790	38	/* Cellvision CAS-790 */
-+#define MACH_ADM5120_CAS861	39	/* Cellvision CAS-861/861W */
-+#define MACH_ADM5120_NFS101U	40	/* Cellvision NFS-101U/101WU */
-+#define MACH_ADM5120_NFS202U	41	/* Cellvision NFS-202U/202WU */
-+#define MACH_ADM5120_EASY5120PATA 42	/* Infineon EASY 5120P-ATA */
-+#define MACH_ADM5120_EASY5120RT 43	/* Infineon EASY 5120-RT */
-+#define MACH_ADM5120_EASY5120WVOIP 44	/* Infineon EASY 5120-WVoIP */
-+#define MACH_ADM5120_EASY83000	45	/* Infineon EASY-83000 */
-+#define MACH_ADM5120_BR6104K	46	/* Edimax BR-6104K/BR-6104KP */
-+#define MACH_ADM5120_RB_192	47	/* Mikrotik RouterBOARD 192 */
-+#define MACH_ADM5120_BR61x4WG	48	/* Edimax BR-6104Wg/BR-6114WG */
-+
- #define CL_SIZE			COMMAND_LINE_SIZE
- 
- extern char *system_type;
diff --git a/target/linux/adm5120/patches-2.6.25/002-adm5120_flash.patch b/target/linux/adm5120/patches-2.6.25/002-adm5120_flash.patch
deleted file mode 100644
index 143952321..000000000
--- a/target/linux/adm5120/patches-2.6.25/002-adm5120_flash.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/drivers/mtd/maps/Kconfig
-+++ b/drivers/mtd/maps/Kconfig
-@@ -590,5 +590,9 @@
- 
- 	  This selection automatically selects the map_ram driver.
- 
-+config MTD_ADM5120
-+	tristate "Map driver for ADM5120 based boards"
-+	depends on MIPS_ADM5120
-+
- endmenu
- 
---- a/drivers/mtd/maps/Makefile
-+++ b/drivers/mtd/maps/Makefile
-@@ -44,6 +44,7 @@
- obj-$(CONFIG_MTD_SOLUTIONENGINE)+= solutionengine.o
- obj-$(CONFIG_MTD_PCI)		+= pci.o
- obj-$(CONFIG_MTD_ALCHEMY)       += alchemy-flash.o
-+obj-$(CONFIG_MTD_ADM5120)      	+= adm5120-flash.o
- obj-$(CONFIG_MTD_AUTCPU12)	+= autcpu12-nvram.o
- obj-$(CONFIG_MTD_EDB7312)	+= edb7312.o
- obj-$(CONFIG_MTD_IMPA7)		+= impa7.o
diff --git a/target/linux/adm5120/patches-2.6.25/003-adm5120_switch.patch b/target/linux/adm5120/patches-2.6.25/003-adm5120_switch.patch
deleted file mode 100644
index 20718119f..000000000
--- a/target/linux/adm5120/patches-2.6.25/003-adm5120_switch.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- a/drivers/net/Kconfig
-+++ b/drivers/net/Kconfig
-@@ -606,6 +606,10 @@
- 	  If you have an Alchemy Semi AU1X00 based system
- 	  say Y.  Otherwise, say N.
- 
-+config MIPS_ADM5120_ENET
-+	tristate "MIPS ADM5120 Ethernet switch support"
-+	depends on MIPS_ADM5120
-+
- config SGI_IOC3_ETH
- 	bool "SGI IOC3 Ethernet"
- 	depends on PCI && SGI_IP27
---- a/drivers/net/Makefile
-+++ b/drivers/net/Makefile
-@@ -187,6 +187,7 @@
- # This is also a 82596 and should probably be merged
- obj-$(CONFIG_LP486E) += lp486e.o
- 
-+obj-$(CONFIG_MIPS_ADM5120_ENET) += adm5120sw.o
- obj-$(CONFIG_ETH16I) += eth16i.o
- obj-$(CONFIG_ZORRO8390) += zorro8390.o
- obj-$(CONFIG_HPLANCE) += hplance.o 7990.o
diff --git a/target/linux/adm5120/patches-2.6.25/005-adm5120_usb.patch b/target/linux/adm5120/patches-2.6.25/005-adm5120_usb.patch
deleted file mode 100644
index 4ab31dd98..000000000
--- a/target/linux/adm5120/patches-2.6.25/005-adm5120_usb.patch
+++ /dev/null
@@ -1,29 +0,0 @@
---- a/drivers/usb/host/Kconfig
-+++ b/drivers/usb/host/Kconfig
-@@ -260,3 +260,6 @@
- 	  To compile this driver as a module, choose M here: the
- 	  module will be called r8a66597-hcd.
- 
-+config USB_ADM5120_HCD
-+	tristate "ADM5120 HCD support (EXPERIMENTAL)"
-+	depends on USB && MIPS_ADM5120 && EXPERIMENTAL
---- a/drivers/usb/host/Makefile
-+++ b/drivers/usb/host/Makefile
-@@ -8,6 +8,7 @@
- 
- obj-$(CONFIG_PCI)		+= pci-quirks.o
- 
-+obj-$(CONFIG_USB_ADM5120_HCD)	+= adm5120-hcd.o
- obj-$(CONFIG_USB_EHCI_HCD)	+= ehci-hcd.o
- obj-$(CONFIG_USB_ISP116X_HCD)	+= isp116x-hcd.o
- obj-$(CONFIG_USB_OHCI_HCD)	+= ohci-hcd.o
---- a/drivers/usb/Makefile
-+++ b/drivers/usb/Makefile
-@@ -16,6 +16,7 @@
- obj-$(CONFIG_USB_SL811_HCD)	+= host/
- obj-$(CONFIG_USB_U132_HCD)	+= host/
- obj-$(CONFIG_USB_R8A66597_HCD)	+= host/
-+obj-$(CONFIG_USB_ADM5120_HCD)  	+= host/
- 
- obj-$(CONFIG_USB_ACM)		+= class/
- obj-$(CONFIG_USB_PRINTER)	+= class/
diff --git a/target/linux/adm5120/patches-2.6.25/006-adm5120_leds.patch b/target/linux/adm5120/patches-2.6.25/006-adm5120_leds.patch
deleted file mode 100644
index ac108e512..000000000
--- a/target/linux/adm5120/patches-2.6.25/006-adm5120_leds.patch
+++ /dev/null
@@ -1,34 +0,0 @@
---- a/drivers/leds/Kconfig
-+++ b/drivers/leds/Kconfig
-@@ -25,6 +25,21 @@
- 	  This option enables support for LEDs driven using outputs
- 	  of the dedicated PWM controller found on newer Atmel SOCs.
- 
-+config LEDS_ADM5120
-+	tristate "LED Support for ADM5120 GPIO LEDs"
-+	depends on LEDS_GPIO && MIPS_ADM5120
-+	help
-+	  This option enables support for LEDs connected to GPIO lines
-+	  on ADM5120 SoC based platforms.
-+
-+config LEDS_ADM5120_EXPERIMENTAL
-+	bool "Enable ADM5120 LEDs experimental code"
-+	depends on LEDS_ADM5120
-+
-+config LEDS_ADM5120_DIAG
-+	bool "Enable ADM5120 LEDs diagnostic mode"
-+	depends on LEDS_ADM5120
-+
- config LEDS_CORGI
- 	tristate "LED Support for the Sharp SL-C7x0 series"
- 	depends on LEDS_CLASS && PXA_SHARP_C7xx
---- a/drivers/leds/Makefile
-+++ b/drivers/leds/Makefile
-@@ -5,6 +5,7 @@
- obj-$(CONFIG_LEDS_TRIGGERS)		+= led-triggers.o
- 
- # LED Platform Drivers
-+obj-$(CONFIG_LEDS_ADM5120)		+= leds-adm5120.o
- obj-$(CONFIG_LEDS_ATMEL_PWM)		+= leds-atmel-pwm.o
- obj-$(CONFIG_LEDS_CORGI)		+= leds-corgi.o
- obj-$(CONFIG_LEDS_LOCOMO)		+= leds-locomo.o
diff --git a/target/linux/adm5120/patches-2.6.25/007-adm5120_pci.patch b/target/linux/adm5120/patches-2.6.25/007-adm5120_pci.patch
deleted file mode 100644
index 571c87675..000000000
--- a/target/linux/adm5120/patches-2.6.25/007-adm5120_pci.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- a/arch/mips/pci/Makefile
-+++ b/arch/mips/pci/Makefile
-@@ -48,3 +48,4 @@
- obj-$(CONFIG_VICTOR_MPC30X)	+= fixup-mpc30x.o
- obj-$(CONFIG_ZAO_CAPCELLA)	+= fixup-capcella.o
- obj-$(CONFIG_WR_PPMC)		+= fixup-wrppmc.o
-+obj-$(CONFIG_PCI_ADM5120)	+= pci-adm5120.o
---- a/include/linux/pci_ids.h
-+++ b/include/linux/pci_ids.h
-@@ -1704,6 +1704,9 @@
- #define PCI_VENDOR_ID_ESDGMBH		0x12fe
- #define PCI_DEVICE_ID_ESDGMBH_CPCIASIO4 0x0111
- 
-+#define PCI_VENDOR_ID_ADMTEK		0x1317
-+#define PCI_DEVICE_ID_ADMTEK_ADM5120	0x5120
-+
- #define PCI_VENDOR_ID_SIIG		0x131f
- #define PCI_SUBVENDOR_ID_SIIG		0x131f
- #define PCI_DEVICE_ID_SIIG_1S_10x_550	0x1000
diff --git a/target/linux/adm5120/patches-2.6.25/009-adm5120_leds_switch_trigger.patch b/target/linux/adm5120/patches-2.6.25/009-adm5120_leds_switch_trigger.patch
deleted file mode 100644
index 18280ed85..000000000
--- a/target/linux/adm5120/patches-2.6.25/009-adm5120_leds_switch_trigger.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/drivers/leds/Kconfig
-+++ b/drivers/leds/Kconfig
-@@ -213,4 +213,12 @@
- 	  This allows LEDs to be initialised in the ON state.
- 	  If unsure, say Y.
- 
-+config LEDS_TRIGGER_ADM5120_SWITCH
-+	tristate "LED ADM5120 Switch Port Status Trigger"
-+	depends on LEDS_TRIGGERS && LEDS_ADM5120
-+	help
-+	  This allows LEDs to be controlled by the port states of
-+	  the ADM5120 built-in Ethernet Switch
-+	  If unsure, say N.
-+
- endif # NEW_LEDS
---- a/drivers/leds/Makefile
-+++ b/drivers/leds/Makefile
-@@ -30,3 +30,4 @@
- obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT)	+= ledtrig-heartbeat.o
- obj-$(CONFIG_LEDS_TRIGGER_MORSE)	+= ledtrig-morse.o
- obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON)	+= ledtrig-default-on.o
-+obj-$(CONFIG_LEDS_TRIGGER_ADM5120_SWITCH) += ledtrig-adm5120-switch.o
diff --git a/target/linux/adm5120/patches-2.6.25/100-mtd_myloder_partition_parser.patch b/target/linux/adm5120/patches-2.6.25/100-mtd_myloder_partition_parser.patch
deleted file mode 100644
index f5188936d..000000000
--- a/target/linux/adm5120/patches-2.6.25/100-mtd_myloder_partition_parser.patch
+++ /dev/null
@@ -1,35 +0,0 @@
---- a/drivers/mtd/Kconfig
-+++ b/drivers/mtd/Kconfig
-@@ -168,6 +168,22 @@
- 	  the partition map from the children of the flash node,
- 	  as described in Documentation/powerpc/booting-without-of.txt.
- 
-+config MTD_MYLOADER_PARTS
-+	tristate "MyLoader partition parsing"
-+	depends on MIPS_ADM5120 && MTD_PARTITIONS
-+	---help---
-+	  MyLoader is a bootloader which allows the user to define partitions
-+	  in flash devices, by putting a table in the second erase block
-+	  on the device, similar to a partition table. This table gives the 
-+	  offsets and lengths of the user defined partitions.
-+
-+	  If you need code which can detect and parse these tables, and
-+	  register MTD 'partitions' corresponding to each image detected,
-+	  enable this option.
-+
-+	  You will still need the parsing functions to be called by the driver
-+	  for your particular device. It won't happen automatically.
-+
- comment "User Modules And Translation Layers"
- 
- config MTD_CHAR
---- a/drivers/mtd/Makefile
-+++ b/drivers/mtd/Makefile
-@@ -12,6 +12,7 @@
- obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
- obj-$(CONFIG_MTD_AFS_PARTS)	+= afs.o
- obj-$(CONFIG_MTD_OF_PARTS)      += ofpart.o
-+obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o
- 
- # 'Users' - code which presents functionality to userspace.
- obj-$(CONFIG_MTD_CHAR)		+= mtdchar.o
diff --git a/target/linux/adm5120/patches-2.6.25/101-cfi_fixup_macronix_bootloc.patch b/target/linux/adm5120/patches-2.6.25/101-cfi_fixup_macronix_bootloc.patch
deleted file mode 100644
index 917908893..000000000
--- a/target/linux/adm5120/patches-2.6.25/101-cfi_fixup_macronix_bootloc.patch
+++ /dev/null
@@ -1,91 +0,0 @@
---- a/drivers/mtd/chips/cfi_cmdset_0002.c
-+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
-@@ -47,12 +47,19 @@
- #define MANUFACTURER_AMD	0x0001
- #define MANUFACTURER_ATMEL	0x001F
- #define MANUFACTURER_SST	0x00BF
-+#define MANUFACTURER_MACRONIX	0x00C2
- #define SST49LF004B	        0x0060
- #define SST49LF040B	        0x0050
- #define SST49LF008A		0x005a
- #define AT49BV6416		0x00d6
- #define MANUFACTURER_SAMSUNG	0x00ec
- 
-+/* Macronix */
-+#define MX29LV160B	0x2249	/* MX29LV160 Bottom-boot chip */
-+#define MX29LV160T	0x22C4	/* MX29LV160 Top-boot chip */
-+#define MX29LV320B	0x22A8	/* MX29LV320 Bottom-boot chip */
-+#define MX29LV320T	0x22A7	/* MX29LV320 Top-boot chip */
-+
- static int cfi_amdstd_read (struct mtd_info *, loff_t, size_t, size_t *, u_char *);
- static int cfi_amdstd_write_words(struct mtd_info *, loff_t, size_t, size_t *, const u_char *);
- static int cfi_amdstd_write_buffers(struct mtd_info *, loff_t, size_t, size_t *, const u_char *);
-@@ -221,6 +228,41 @@
- 	mtd->flags |= MTD_POWERUP_LOCK;
- }
- 
-+#ifdef CONFIG_MTD_CFI_FIXUP_MACRONIX_BOOTLOC
-+/*
-+ * Some Macronix chips has no/bad bootblock information in the CFI table
-+ */
-+static void fixup_macronix_bootloc(struct mtd_info *mtd, void* param)
-+{
-+	struct map_info *map = mtd->priv;
-+	struct cfi_private *cfi = map->fldrv_priv;
-+	struct cfi_pri_amdstd *extp = cfi->cmdset_priv;
-+	__u8 t;
-+
-+	switch (cfi->id) {
-+	/* TODO: put affected chip ids here */
-+	case MX29LV160B:
-+	case MX29LV320B:
-+		t = 2;	/* Bottom boot */
-+		break;
-+	case MX29LV160T:
-+	case MX29LV320T:
-+		t = 3;	/* Top boot */
-+		break;
-+	default:
-+		return;
-+	}
-+
-+	if (extp->TopBottom == t)
-+		/* boot location detected by the CFI layer is correct */
-+		return;
-+
-+	extp->TopBottom = t;
-+	printk("%s: Macronix chip detected, id:0x%04X, boot location forced "
-+		"to %s\n", map->name, cfi->id, (t == 2) ? "bottom" : "top");
-+}
-+#endif /* CONFIG_MTD_CFI_FIXUP_MACRONIX_BOOTLOC */
-+
- static struct cfi_fixup cfi_fixup_table[] = {
- 	{ CFI_MFR_ATMEL, CFI_ID_ANY, fixup_convert_atmel_pri, NULL },
- #ifdef AMD_BOOTLOC_BUG
-@@ -252,6 +294,9 @@
- 	 */
- 	{ CFI_MFR_ANY, CFI_ID_ANY, fixup_use_erase_chip, NULL },
- 	{ CFI_MFR_ATMEL, AT49BV6416, fixup_use_atmel_lock, NULL },
-+#ifdef CONFIG_MTD_CFI_FIXUP_MACRONIX_BOOTLOC
-+	{ MANUFACTURER_MACRONIX, CFI_ID_ANY, fixup_macronix_bootloc, NULL, },
-+#endif
- 	{ 0, 0, NULL, NULL }
- };
- 
---- a/drivers/mtd/chips/Kconfig
-+++ b/drivers/mtd/chips/Kconfig
-@@ -196,6 +196,14 @@
- 	  provides support for one of those command sets, used on chips
- 	  including the AMD Am29LV320.
- 
-+config MTD_CFI_FIXUP_MACRONIX_BOOTLOC
-+	bool "Fix boot-block location for Macronix flash chips"
-+	depends on MTD_CFI_AMDSTD
-+	help
-+	  Some Macronix flash chips have no/wrong boot-block location in the
-+	  CFI table, and the driver may detect the type incorrectly. Select
-+	  this if your board has such chip.
-+
- config MTD_CFI_STAA
- 	tristate "Support for ST (Advanced Architecture) flash chips"
- 	depends on MTD_GEN_PROBE
diff --git a/target/linux/adm5120/patches-2.6.25/102-jedec_pmc_39lvxxx_chips.patch b/target/linux/adm5120/patches-2.6.25/102-jedec_pmc_39lvxxx_chips.patch
deleted file mode 100644
index 7f352f67e..000000000
--- a/target/linux/adm5120/patches-2.6.25/102-jedec_pmc_39lvxxx_chips.patch
+++ /dev/null
@@ -1,68 +0,0 @@
---- a/drivers/mtd/chips/jedec_probe.c
-+++ b/drivers/mtd/chips/jedec_probe.c
-@@ -121,6 +121,10 @@
- #define UPD29F064115	0x221C
- 
- /* PMC */
-+#define PM39LV512	0x001B
-+#define PM39LV010	0x001C
-+#define PM39LV020	0x003D
-+#define PM39LV040	0x003E
- #define PM49FL002	0x006D
- #define PM49FL004	0x006E
- #define PM49FL008	0x006A
-@@ -1170,6 +1174,54 @@
- 			ERASEINFO(0x02000,2),
- 			ERASEINFO(0x04000,1),
- 		}
-+        }, {
-+		.mfr_id		= MANUFACTURER_PMC,
-+		.dev_id		= PM39LV512,
-+		.name		= "PMC Pm39LV512",
-+		.devtypes	= CFI_DEVICETYPE_X8,
-+		.uaddr		= MTD_UADDR_0x0555_0x02AA,
-+		.dev_size	= SIZE_64KiB,
-+		.cmd_set	= P_ID_AMD_STD,
-+		.nr_regions	= 1,
-+		.regions	= {
-+			ERASEINFO(0x01000,16),
-+		}
-+        }, {
-+		.mfr_id		= MANUFACTURER_PMC,
-+		.dev_id		= PM39LV010,
-+		.name		= "PMC Pm39LV010",
-+		.devtypes	= CFI_DEVICETYPE_X8,
-+		.uaddr		= MTD_UADDR_0x0555_0x02AA,
-+		.dev_size	= SIZE_128KiB,
-+		.cmd_set	= P_ID_AMD_STD,
-+		.nr_regions	= 1,
-+		.regions	= {
-+			ERASEINFO(0x01000,32),
-+		}
-+        }, {
-+		.mfr_id		= MANUFACTURER_PMC,
-+		.dev_id		= PM39LV020,
-+		.name		= "PMC Pm39LV020",
-+		.devtypes	= CFI_DEVICETYPE_X8,
-+		.uaddr		= MTD_UADDR_0x0555_0x02AA,
-+		.dev_size	= SIZE_256KiB,
-+		.cmd_set	= P_ID_AMD_STD,
-+		.nr_regions	= 1,
-+		.regions	= {
-+			ERASEINFO(0x01000,64),
-+		}
-+        }, {
-+		.mfr_id		= MANUFACTURER_PMC,
-+		.dev_id		= PM39LV040,
-+		.name		= "PMC Pm39LV040",
-+		.devtypes	= CFI_DEVICETYPE_X8,
-+		.uaddr		= MTD_UADDR_0x0555_0x02AA,
-+		.dev_size	= SIZE_512KiB,
-+		.cmd_set	= P_ID_AMD_STD,
-+		.nr_regions	= 1,
-+		.regions	= {
-+			ERASEINFO(0x01000,128),
-+		}
- 	}, {
- 		.mfr_id		= MANUFACTURER_PMC,
- 		.dev_id		= PM49FL002,
diff --git a/target/linux/adm5120/patches-2.6.25/103-mtd_trxsplit.patch b/target/linux/adm5120/patches-2.6.25/103-mtd_trxsplit.patch
deleted file mode 100644
index 267293aa5..000000000
--- a/target/linux/adm5120/patches-2.6.25/103-mtd_trxsplit.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- a/drivers/mtd/Kconfig
-+++ b/drivers/mtd/Kconfig
-@@ -57,6 +57,11 @@
- 	depends on MTD_PARTITIONS
- 	default y
- 
-+config MTD_TRXSPLIT
-+	bool "Automatically find and split TRX partitions"
-+	depends on MTD_PARTITIONS
-+	default n
-+
- config MTD_REDBOOT_PARTS
- 	tristate "RedBoot partition table parsing"
- 	depends on MTD_PARTITIONS
---- a/drivers/mtd/Makefile
-+++ b/drivers/mtd/Makefile
-@@ -8,6 +8,7 @@
- mtd-$(CONFIG_MTD_PARTITIONS)	+= mtdpart.o
- 
- obj-$(CONFIG_MTD_CONCAT)	+= mtdconcat.o
-+obj-$(CONFIG_MTD_TRXSPLIT)	+= trxsplit.o
- obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
- obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
- obj-$(CONFIG_MTD_AFS_PARTS)	+= afs.o
diff --git a/target/linux/adm5120/patches-2.6.25/120-rb153_cf_driver.patch b/target/linux/adm5120/patches-2.6.25/120-rb153_cf_driver.patch
deleted file mode 100644
index 6f371e340..000000000
--- a/target/linux/adm5120/patches-2.6.25/120-rb153_cf_driver.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/drivers/ata/Makefile
-+++ b/drivers/ata/Makefile
-@@ -71,6 +71,7 @@
- obj-$(CONFIG_PATA_PLATFORM)	+= pata_platform.o
- obj-$(CONFIG_PATA_OF_PLATFORM)	+= pata_of_platform.o
- obj-$(CONFIG_PATA_ICSIDE)	+= pata_icside.o
-+obj-$(CONFIG_PATA_RB153_CF)	+= pata_rb153_cf.o
- # Should be last but two libata driver
- obj-$(CONFIG_PATA_ACPI)		+= pata_acpi.o
- # Should be last but one libata driver
---- a/drivers/ata/Kconfig
-+++ b/drivers/ata/Kconfig
-@@ -679,4 +679,13 @@
- 
- 	  If unsure, say N.
- 
-+config PATA_RB153_CF
-+	tristate "RouterBOARD 153 Compact Flash support"
-+	depends on MIPS_ADM5120
-+	help
-+	  This option enables support for a Compact Flash connected on
-+	  the RouterBOARD 153.
-+
-+	  If unsure, say N.
-+
- endif # ATA
diff --git a/target/linux/adm5120/patches-2.6.25/140-cmdline_hack.patch b/target/linux/adm5120/patches-2.6.25/140-cmdline_hack.patch
deleted file mode 100644
index 1ced3f62d..000000000
--- a/target/linux/adm5120/patches-2.6.25/140-cmdline_hack.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/arch/mips/kernel/head.S
-+++ b/arch/mips/kernel/head.S
-@@ -126,7 +126,12 @@
- 	/*
- 	 * Reserved space for exception handlers.
- 	 * Necessary for machines which link their kernels at KSEG0.
-+	 * Use as temporary storage for the kernel command line, so that it
-+	 * can be updated easily without having to relink the kernel.
- 	 */
-+
-+EXPORT(_image_cmdline)
-+	.ascii "CMDLINE:"
- 	.fill	0x400
- #endif
- 
diff --git a/target/linux/adm5120/patches-2.6.25/200-amba_pl010_hacks.patch b/target/linux/adm5120/patches-2.6.25/200-amba_pl010_hacks.patch
deleted file mode 100644
index 97b06acec..000000000
--- a/target/linux/adm5120/patches-2.6.25/200-amba_pl010_hacks.patch
+++ /dev/null
@@ -1,293 +0,0 @@
---- a/drivers/serial/amba-pl010.c
-+++ b/drivers/serial/amba-pl010.c
-@@ -52,11 +52,10 @@
- 
- #include <asm/io.h>
- 
--#define UART_NR		8
--
- #define SERIAL_AMBA_MAJOR	204
- #define SERIAL_AMBA_MINOR	16
--#define SERIAL_AMBA_NR		UART_NR
-+#define SERIAL_AMBA_NR		CONFIG_SERIAL_AMBA_PL010_NUMPORTS
-+#define SERIAL_AMBA_NAME	CONFIG_SERIAL_AMBA_PL010_PORTNAME
- 
- #define AMBA_ISR_PASS_LIMIT	256
- 
-@@ -82,7 +81,7 @@
- 	struct uart_amba_port *uap = (struct uart_amba_port *)port;
- 	unsigned int cr;
- 
--	cr = readb(uap->port.membase + UART010_CR);
-+	cr = readl(uap->port.membase + UART010_CR);
- 	cr &= ~UART010_CR_TIE;
- 	writel(cr, uap->port.membase + UART010_CR);
- }
-@@ -92,7 +91,7 @@
- 	struct uart_amba_port *uap = (struct uart_amba_port *)port;
- 	unsigned int cr;
- 
--	cr = readb(uap->port.membase + UART010_CR);
-+	cr = readl(uap->port.membase + UART010_CR);
- 	cr |= UART010_CR_TIE;
- 	writel(cr, uap->port.membase + UART010_CR);
- }
-@@ -102,7 +101,7 @@
- 	struct uart_amba_port *uap = (struct uart_amba_port *)port;
- 	unsigned int cr;
- 
--	cr = readb(uap->port.membase + UART010_CR);
-+	cr = readl(uap->port.membase + UART010_CR);
- 	cr &= ~(UART010_CR_RIE | UART010_CR_RTIE);
- 	writel(cr, uap->port.membase + UART010_CR);
- }
-@@ -112,7 +111,7 @@
- 	struct uart_amba_port *uap = (struct uart_amba_port *)port;
- 	unsigned int cr;
- 
--	cr = readb(uap->port.membase + UART010_CR);
-+	cr = readl(uap->port.membase + UART010_CR);
- 	cr |= UART010_CR_MSIE;
- 	writel(cr, uap->port.membase + UART010_CR);
- }
-@@ -122,9 +121,9 @@
- 	struct tty_struct *tty = uap->port.info->tty;
- 	unsigned int status, ch, flag, rsr, max_count = 256;
- 
--	status = readb(uap->port.membase + UART01x_FR);
-+	status = readl(uap->port.membase + UART01x_FR);
- 	while (UART_RX_DATA(status) && max_count--) {
--		ch = readb(uap->port.membase + UART01x_DR);
-+		ch = readl(uap->port.membase + UART01x_DR);
- 		flag = TTY_NORMAL;
- 
- 		uap->port.icount.rx++;
-@@ -133,7 +132,7 @@
- 		 * Note that the error handling code is
- 		 * out of the main execution path
- 		 */
--		rsr = readb(uap->port.membase + UART01x_RSR) | UART_DUMMY_RSR_RX;
-+		rsr = readl(uap->port.membase + UART01x_RSR) | UART_DUMMY_RSR_RX;
- 		if (unlikely(rsr & UART01x_RSR_ANY)) {
- 			writel(0, uap->port.membase + UART01x_ECR);
- 
-@@ -165,7 +164,7 @@
- 		uart_insert_char(&uap->port, rsr, UART01x_RSR_OE, ch, flag);
- 
- 	ignore_char:
--		status = readb(uap->port.membase + UART01x_FR);
-+		status = readl(uap->port.membase + UART01x_FR);
- 	}
- 	spin_unlock(&uap->port.lock);
- 	tty_flip_buffer_push(tty);
-@@ -210,7 +209,7 @@
- 
- 	writel(0, uap->port.membase + UART010_ICR);
- 
--	status = readb(uap->port.membase + UART01x_FR) & UART01x_FR_MODEM_ANY;
-+	status = readl(uap->port.membase + UART01x_FR) & UART01x_FR_MODEM_ANY;
- 
- 	delta = status ^ uap->old_status;
- 	uap->old_status = status;
-@@ -238,7 +237,7 @@
- 
- 	spin_lock(&uap->port.lock);
- 
--	status = readb(uap->port.membase + UART010_IIR);
-+	status = readl(uap->port.membase + UART010_IIR);
- 	if (status) {
- 		do {
- 			if (status & (UART010_IIR_RTIS | UART010_IIR_RIS))
-@@ -251,7 +250,7 @@
- 			if (pass_counter-- == 0)
- 				break;
- 
--			status = readb(uap->port.membase + UART010_IIR);
-+			status = readl(uap->port.membase + UART010_IIR);
- 		} while (status & (UART010_IIR_RTIS | UART010_IIR_RIS |
- 				   UART010_IIR_TIS));
- 		handled = 1;
-@@ -265,7 +264,7 @@
- static unsigned int pl010_tx_empty(struct uart_port *port)
- {
- 	struct uart_amba_port *uap = (struct uart_amba_port *)port;
--	unsigned int status = readb(uap->port.membase + UART01x_FR);
-+	unsigned int status = readl(uap->port.membase + UART01x_FR);
- 	return status & UART01x_FR_BUSY ? 0 : TIOCSER_TEMT;
- }
- 
-@@ -275,7 +274,7 @@
- 	unsigned int result = 0;
- 	unsigned int status;
- 
--	status = readb(uap->port.membase + UART01x_FR);
-+	status = readl(uap->port.membase + UART01x_FR);
- 	if (status & UART01x_FR_DCD)
- 		result |= TIOCM_CAR;
- 	if (status & UART01x_FR_DSR)
-@@ -301,7 +300,7 @@
- 	unsigned int lcr_h;
- 
- 	spin_lock_irqsave(&uap->port.lock, flags);
--	lcr_h = readb(uap->port.membase + UART010_LCRH);
-+	lcr_h = readl(uap->port.membase + UART010_LCRH);
- 	if (break_state == -1)
- 		lcr_h |= UART01x_LCRH_BRK;
- 	else
-@@ -334,7 +333,7 @@
- 	/*
- 	 * initialise the old status of the modem signals
- 	 */
--	uap->old_status = readb(uap->port.membase + UART01x_FR) & UART01x_FR_MODEM_ANY;
-+	uap->old_status = readl(uap->port.membase + UART01x_FR) & UART01x_FR_MODEM_ANY;
- 
- 	/*
- 	 * Finally, enable interrupts
-@@ -365,7 +364,7 @@
- 	writel(0, uap->port.membase + UART010_CR);
- 
- 	/* disable break condition and fifos */
--	writel(readb(uap->port.membase + UART010_LCRH) &
-+	writel(readl(uap->port.membase + UART010_LCRH) &
- 		~(UART01x_LCRH_BRK | UART01x_LCRH_FEN),
- 	       uap->port.membase + UART010_LCRH);
- 
-@@ -387,7 +386,7 @@
- 	/*
- 	 * Ask the core to calculate the divisor for us.
- 	 */
--	baud = uart_get_baud_rate(port, termios, old, 0, uap->port.uartclk/16); 
-+	baud = uart_get_baud_rate(port, termios, old, 0, uap->port.uartclk/16);
- 	quot = uart_get_divisor(port, baud);
- 
- 	switch (termios->c_cflag & CSIZE) {
-@@ -450,7 +449,7 @@
- 		uap->port.ignore_status_mask |= UART_DUMMY_RSR_RX;
- 
- 	/* first, disable everything */
--	old_cr = readb(uap->port.membase + UART010_CR) & ~UART010_CR_MSIE;
-+	old_cr = readl(uap->port.membase + UART010_CR) & ~UART010_CR_MSIE;
- 
- 	if (UART_ENABLE_MS(port, termios->c_cflag))
- 		old_cr |= UART010_CR_MSIE;
-@@ -540,7 +539,7 @@
- 	.verify_port	= pl010_verify_port,
- };
- 
--static struct uart_amba_port *amba_ports[UART_NR];
-+static struct uart_amba_port *amba_ports[SERIAL_AMBA_NR];
- 
- #ifdef CONFIG_SERIAL_AMBA_PL010_CONSOLE
- 
-@@ -550,7 +549,7 @@
- 	unsigned int status;
- 
- 	do {
--		status = readb(uap->port.membase + UART01x_FR);
-+		status = readl(uap->port.membase + UART01x_FR);
- 		barrier();
- 	} while (!UART_TX_READY(status));
- 	writel(ch, uap->port.membase + UART01x_DR);
-@@ -567,7 +566,7 @@
- 	/*
- 	 *	First save the CR then disable the interrupts
- 	 */
--	old_cr = readb(uap->port.membase + UART010_CR);
-+	old_cr = readl(uap->port.membase + UART010_CR);
- 	writel(UART01x_CR_UARTEN, uap->port.membase + UART010_CR);
- 
- 	uart_console_write(&uap->port, s, count, pl010_console_putchar);
-@@ -577,7 +576,7 @@
- 	 *	and restore the TCR
- 	 */
- 	do {
--		status = readb(uap->port.membase + UART01x_FR);
-+		status = readl(uap->port.membase + UART01x_FR);
- 		barrier();
- 	} while (status & UART01x_FR_BUSY);
- 	writel(old_cr, uap->port.membase + UART010_CR);
-@@ -589,9 +588,9 @@
- pl010_console_get_options(struct uart_amba_port *uap, int *baud,
- 			     int *parity, int *bits)
- {
--	if (readb(uap->port.membase + UART010_CR) & UART01x_CR_UARTEN) {
-+	if (readl(uap->port.membase + UART010_CR) & UART01x_CR_UARTEN) {
- 		unsigned int lcr_h, quot;
--		lcr_h = readb(uap->port.membase + UART010_LCRH);
-+		lcr_h = readl(uap->port.membase + UART010_LCRH);
- 
- 		*parity = 'n';
- 		if (lcr_h & UART01x_LCRH_PEN) {
-@@ -606,8 +605,8 @@
- 		else
- 			*bits = 8;
- 
--		quot = readb(uap->port.membase + UART010_LCRL) |
--		       readb(uap->port.membase + UART010_LCRM) << 8;
-+		quot = readl(uap->port.membase + UART010_LCRL) |
-+		       readl(uap->port.membase + UART010_LCRM) << 8;
- 		*baud = uap->port.uartclk / (16 * (quot + 1));
- 	}
- }
-@@ -625,7 +624,7 @@
- 	 * if so, search for the first available port that does have
- 	 * console support.
- 	 */
--	if (co->index >= UART_NR)
-+	if (co->index >= SERIAL_AMBA_NR)
- 		co->index = 0;
- 	uap = amba_ports[co->index];
- 	if (!uap)
-@@ -643,7 +642,7 @@
- 
- static struct uart_driver amba_reg;
- static struct console amba_console = {
--	.name		= "ttyAM",
-+	.name		= SERIAL_AMBA_NAME,
- 	.write		= pl010_console_write,
- 	.device		= uart_console_device,
- 	.setup		= pl010_console_setup,
-@@ -659,11 +658,11 @@
- 
- static struct uart_driver amba_reg = {
- 	.owner			= THIS_MODULE,
--	.driver_name		= "ttyAM",
--	.dev_name		= "ttyAM",
-+	.driver_name		= SERIAL_AMBA_NAME,
-+	.dev_name		= SERIAL_AMBA_NAME,
- 	.major			= SERIAL_AMBA_MAJOR,
- 	.minor			= SERIAL_AMBA_MINOR,
--	.nr			= UART_NR,
-+	.nr			= SERIAL_AMBA_NR,
- 	.cons			= AMBA_CONSOLE,
- };
- 
---- a/drivers/serial/Kconfig
-+++ b/drivers/serial/Kconfig
-@@ -287,10 +287,25 @@
- 	help
- 	  This selects the ARM(R) AMBA(R) PrimeCell PL010 UART.  If you have
- 	  an Integrator/AP or Integrator/PP2 platform, or if you have a
--	  Cirrus Logic EP93xx CPU, say Y or M here.
-+	  Cirrus Logic EP93xx CPU or an Infineon ADM5120 SOC, say Y or M here.
- 
- 	  If unsure, say N.
- 
-+config SERIAL_AMBA_PL010_NUMPORTS
-+	int "Maximum number of AMBA PL010 serial ports"
-+	depends on SERIAL_AMBA_PL010
-+	default "8"
-+	---help---
-+	  Set this to the number of serial ports you want the AMBA PL010 driver
-+	  to support.
-+
-+config SERIAL_AMBA_PL010_PORTNAME
-+	string "Name of the AMBA PL010 serial ports"
-+	depends on SERIAL_AMBA_PL010
-+	default "ttyAM"
-+	---help---
-+	  ::: To be written :::
-+
- config SERIAL_AMBA_PL010_CONSOLE
- 	bool "Support for console on AMBA serial port"
- 	depends on SERIAL_AMBA_PL010=y
diff --git a/target/linux/adm5120/patches-2.6.25/201-amba_bus_hacks.patch b/target/linux/adm5120/patches-2.6.25/201-amba_bus_hacks.patch
deleted file mode 100644
index 299f21652..000000000
--- a/target/linux/adm5120/patches-2.6.25/201-amba_bus_hacks.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/drivers/amba/bus.c
-+++ b/drivers/amba/bus.c
-@@ -17,6 +17,10 @@
- #include <asm/io.h>
- #include <asm/sizes.h>
- 
-+#ifndef NO_IRQ
-+#define NO_IRQ		(-1)
-+#endif
-+
- #define to_amba_device(d)	container_of(d, struct amba_device, dev)
- #define to_amba_driver(d)	container_of(d, struct amba_driver, drv)
- 
diff --git a/target/linux/adm5120/patches-2.6.25/202-pci_disable_common_quirks.patch b/target/linux/adm5120/patches-2.6.25/202-pci_disable_common_quirks.patch
deleted file mode 100644
index 25149885a..000000000
--- a/target/linux/adm5120/patches-2.6.25/202-pci_disable_common_quirks.patch
+++ /dev/null
@@ -1,46 +0,0 @@
---- a/drivers/pci/Kconfig
-+++ b/drivers/pci/Kconfig
-@@ -42,6 +42,12 @@
- 
- 	  When in doubt, say N.
- 
-+config PCI_DISABLE_COMMON_QUIRKS
-+	bool "PCI disable common quirks"
-+	depends on PCI
-+	help
-+	  If you don't know what to do here, say N.
-+
- config HT_IRQ
- 	bool "Interrupts on hypertransport devices"
- 	default y
---- a/drivers/pci/quirks.c
-+++ b/drivers/pci/quirks.c
-@@ -24,6 +24,7 @@
- #include <linux/kallsyms.h>
- #include "pci.h"
- 
-+#ifndef CONFIG_PCI_DISABLE_COMMON_QUIRKS
- /* The Mellanox Tavor device gives false positive parity errors
-  * Mark this device with a broken_parity_status, to allow
-  * PCI scanning code to "skip" this now blacklisted device.
-@@ -1495,6 +1496,7 @@
- 	}
- }
- DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NCR, PCI_DEVICE_ID_NCR_53C810, fixup_rev1_53c810);
-+#endif /* !CONFIG_PCI_DISABLE_COMMON_QUIRKS */
- 
- static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_fixup *end)
- {
-@@ -1562,6 +1564,7 @@
- }
- EXPORT_SYMBOL(pci_fixup_device);
- 
-+#ifndef CONFIG_PCI_DISABLE_COMMON_QUIRKS
- /* Enable 1k I/O space granularity on the Intel P64H2 */
- static void __devinit quirk_p64h2_1k_io(struct pci_dev *dev)
- {
-@@ -1875,3 +1878,4 @@
- 			quirk_msi_intx_disable_bug);
- 
- #endif /* CONFIG_PCI_MSI */
-+#endif /* !CONFIG_PCI_DISABLE_COMMON_QUIRKS */
diff --git a/target/linux/adm5120/patches-2.6.25/203-gpio_leds_brightness.patch b/target/linux/adm5120/patches-2.6.25/203-gpio_leds_brightness.patch
deleted file mode 100644
index 06394da29..000000000
--- a/target/linux/adm5120/patches-2.6.25/203-gpio_leds_brightness.patch
+++ /dev/null
@@ -1,27 +0,0 @@
---- a/drivers/leds/leds-gpio.c
-+++ b/drivers/leds/leds-gpio.c
-@@ -41,13 +41,17 @@
- 		container_of(led_cdev, struct gpio_led_data, cdev);
- 	int level;
- 
--	if (value == LED_OFF)
--		level = 0;
--	else
--		level = 1;
--
--	if (led_dat->active_low)
--		level = !level;
-+	switch (value) {
-+	case LED_OFF:
-+		level = led_dat->active_low ? 1 : 0;
-+		break;
-+	case LED_FULL:
-+		level = led_dat->active_low ? 0 : 1;
-+		break;
-+	default:
-+		level = value;
-+		break;
-+	}
- 
- 	/* Setting GPIOs with I2C/etc requires a task context, and we don't
- 	 * seem to have a reliable way to know if we're already in one; so
diff --git a/target/linux/adm5120/patches-2.6.25/310-adm5120_wdt.patch b/target/linux/adm5120/patches-2.6.25/310-adm5120_wdt.patch
deleted file mode 100644
index 78eb62862..000000000
--- a/target/linux/adm5120/patches-2.6.25/310-adm5120_wdt.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- a/drivers/watchdog/Kconfig
-+++ b/drivers/watchdog/Kconfig
-@@ -619,6 +619,18 @@
- 
- # MIPS Architecture
- 
-+config ADM5120_WDT
-+	tristate "Infineon ADM5120 SoC hardware watchdog"
-+	depends on WATCHDOG && MIPS_ADM5120
-+	help
-+	  This is a driver for hardware watchdog integrated in Infineon
-+	  ADM5120 SoC. This watchdog simply watches your kernel to make sure
-+	  it doesn't freeze, and if it does, it reboots your computer after a
-+	  certain amount of time.
-+
-+	  To compile this driver as a module, choose M here: the module will be
-+	  called adm5120_wdt.
-+
- config INDYDOG
- 	tristate "Indy/I2 Hardware Watchdog"
- 	depends on SGI_HAS_INDYDOG
---- a/drivers/watchdog/Makefile
-+++ b/drivers/watchdog/Makefile
-@@ -90,6 +90,7 @@
- # M68KNOMMU Architecture
- 
- # MIPS Architecture
-+obj-$(CONFIG_ADM5120_WDT) += adm5120_wdt.o
- obj-$(CONFIG_INDYDOG) += indydog.o
- obj-$(CONFIG_WDT_MTX1)	+= mtx-1_wdt.o
- obj-$(CONFIG_WDT_RM9K_GPI) += rm9k_wdt.o
diff --git a/target/linux/adm5120/patches-2.6.25/900-usb_bump_version_number.patch b/target/linux/adm5120/patches-2.6.25/900-usb_bump_version_number.patch
deleted file mode 100644
index d15c89c00..000000000
--- a/target/linux/adm5120/patches-2.6.25/900-usb_bump_version_number.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/drivers/usb/host/adm5120-hcd.c
-+++ b/drivers/usb/host/adm5120-hcd.c
-@@ -45,7 +45,7 @@
- #include "../core/hcd.h"
- #include "../core/hub.h"
- 
--#define DRIVER_VERSION	"0.24.0"
-+#define DRIVER_VERSION	"0.25.0"
- #define DRIVER_AUTHOR	"Gabor Juhos <juhosg at openwrt.org>"
- #define DRIVER_DESC	"ADMtek USB 1.1 Host Controller Driver"
- 
diff --git a/target/linux/adm5120/patches-2.6.25/901-usb_convert_from_class_device.patch b/target/linux/adm5120/patches-2.6.25/901-usb_convert_from_class_device.patch
deleted file mode 100644
index da868ccba..000000000
--- a/target/linux/adm5120/patches-2.6.25/901-usb_convert_from_class_device.patch
+++ /dev/null
@@ -1,107 +0,0 @@
---- a/drivers/usb/host/adm5120-dbg.c
-+++ b/drivers/usb/host/adm5120-dbg.c
-@@ -456,7 +456,7 @@
- }
- 
- static ssize_t
--show_async(struct class_device *class_dev, char *buf)
-+show_async(struct device *dev, struct device_attribute *attr, char *buf)
- {
- 	struct usb_bus		*bus;
- 	struct usb_hcd		*hcd;
-@@ -464,7 +464,7 @@
- 	size_t			temp;
- 	unsigned long		flags;
- 
--	bus = class_get_devdata(class_dev);
-+	bus = dev_get_drvdata(dev);
- 	hcd = bus_to_hcd(bus);
- 	ahcd = hcd_to_admhcd(hcd);
- 
-@@ -475,13 +475,13 @@
- 
- 	return temp;
- }
--static CLASS_DEVICE_ATTR(async, S_IRUGO, show_async, NULL);
-+static DEVICE_ATTR(async, S_IRUGO, show_async, NULL);
- 
- 
- #define DBG_SCHED_LIMIT 64
- 
- static ssize_t
--show_periodic(struct class_device *class_dev, char *buf)
-+show_periodic(struct device *dev, struct device_attribute *attr, char *buf)
- {
- 	struct usb_bus		*bus;
- 	struct usb_hcd		*hcd;
-@@ -496,7 +496,7 @@
- 		return 0;
- 	seen_count = 0;
- 
--	bus = class_get_devdata(class_dev);
-+	bus = dev_get_drvdata(dev);
- 	hcd = bus_to_hcd(bus);
- 	ahcd = hcd_to_admhcd(hcd);
- 	next = buf;
-@@ -574,13 +574,13 @@
- 
- 	return PAGE_SIZE - size;
- }
--static CLASS_DEVICE_ATTR(periodic, S_IRUGO, show_periodic, NULL);
-+static DEVICE_ATTR(periodic, S_IRUGO, show_periodic, NULL);
- 
- 
- #undef DBG_SCHED_LIMIT
- 
- static ssize_t
--show_registers(struct class_device *class_dev, char *buf)
-+show_registers(struct device *dev, struct device_attribute *attr, char *buf)
- {
- 	struct usb_bus		*bus;
- 	struct usb_hcd		*hcd;
-@@ -591,7 +591,7 @@
- 	char			*next;
- 	u32			rdata;
- 
--	bus = class_get_devdata(class_dev);
-+	bus = dev_get_drvdata(dev);
- 	hcd = bus_to_hcd(bus);
- 	ahcd = hcd_to_admhcd(hcd);
- 	regs = ahcd->regs;
-@@ -656,27 +656,27 @@
- 	spin_unlock_irqrestore(&ahcd->lock, flags);
- 	return PAGE_SIZE - size;
- }
--static CLASS_DEVICE_ATTR(registers, S_IRUGO, show_registers, NULL);
-+static DEVICE_ATTR(registers, S_IRUGO, show_registers, NULL);
- 
- 
- static inline void create_debug_files (struct admhcd *ahcd)
- {
--	struct class_device *cldev = admhcd_to_hcd(ahcd)->self.class_dev;
-+	struct device *dev = admhcd_to_hcd(ahcd)->self.dev;
- 	int retval;
- 
--	retval = class_device_create_file(cldev, &class_device_attr_async);
--	retval = class_device_create_file(cldev, &class_device_attr_periodic);
--	retval = class_device_create_file(cldev, &class_device_attr_registers);
-+	retval = device_create_file(dev, &dev_attr_async);
-+	retval = device_create_file(dev, &dev_attr_periodic);
-+	retval = device_create_file(dev, &dev_attr_registers);
- 	admhc_dbg(ahcd, "created debug files\n");
- }
- 
- static inline void remove_debug_files (struct admhcd *ahcd)
- {
--	struct class_device *cldev = admhcd_to_hcd(ahcd)->self.class_dev;
-+	struct device *dev = admhcd_to_hcd(ahcd)->self.dev;
- 
--	class_device_remove_file(cldev, &class_device_attr_async);
--	class_device_remove_file(cldev, &class_device_attr_periodic);
--	class_device_remove_file(cldev, &class_device_attr_registers);
-+	device_remove_file(dev, &dev_attr_async);
-+	device_remove_file(dev, &dev_attr_periodic);
-+	device_remove_file(dev, &dev_attr_registers);
- }
- 
- #endif
diff --git a/target/linux/adm5120/patches-2.6.25/902-usb_use_debugfs_instead_of_sysfs.patch b/target/linux/adm5120/patches-2.6.25/902-usb_use_debugfs_instead_of_sysfs.patch
deleted file mode 100644
index 5b513c0f6..000000000
--- a/target/linux/adm5120/patches-2.6.25/902-usb_use_debugfs_instead_of_sysfs.patch
+++ /dev/null
@@ -1,357 +0,0 @@
---- a/drivers/usb/host/adm5120.h
-+++ b/drivers/usb/host/adm5120.h
-@@ -431,6 +431,13 @@
- #define	OHCI_QUIRK_BE_MMIO	0x10			/* BE registers */
- #define	OHCI_QUIRK_ZFMICRO	0x20			/* Compaq ZFMicro chipset*/
- 	// there are also chip quirks/bugs in init logic
-+
-+#ifdef DEBUG
-+	struct dentry		*debug_dir;
-+	struct dentry		*debug_async;
-+	struct dentry		*debug_periodic;
-+	struct dentry		*debug_registers;
-+#endif
- };
- 
- /* convert between an hcd pointer and the corresponding ahcd_hcd */
---- a/drivers/usb/host/adm5120-hcd.c
-+++ b/drivers/usb/host/adm5120-hcd.c
-@@ -35,6 +35,7 @@
- #include <linux/dma-mapping.h>
- #include <linux/dmapool.h>
- #include <linux/reboot.h>
-+#include <linux/debugfs.h>
- 
- #include <asm/io.h>
- #include <asm/irq.h>
-@@ -804,6 +805,14 @@
- 	pr_info("%s: block sizes: ed %Zd td %Zd\n", hcd_name,
- 		sizeof (struct ed), sizeof (struct td));
- 
-+#ifdef DEBUG
-+	admhc_debug_root = debugfs_create_dir("admhc", NULL);
-+	if (!admhc_debug_root) {
-+		ret = -ENOENT;
-+		goto error_debug;
-+	}
-+#endif
-+
- #ifdef PLATFORM_DRIVER
- 	ret = platform_driver_register(&PLATFORM_DRIVER);
- 	if (ret < 0)
-@@ -816,6 +825,12 @@
- 	platform_driver_unregister(&PLATFORM_DRIVER);
- error_platform:
- #endif
-+
-+#ifdef DEBUG
-+	debugfs_remove(admhc_debug_root);
-+	admhc_debug_root = NULL;
-+error_debug:
-+#endif
- 	return ret;
- }
- module_init(admhc_hcd_mod_init);
-@@ -823,6 +838,9 @@
- static void __exit admhc_hcd_mod_exit(void)
- {
- 	platform_driver_unregister(&PLATFORM_DRIVER);
-+#ifdef DEBUG
-+	debugfs_remove(admhc_debug_root);
-+#endif
- }
- module_exit(admhc_hcd_mod_exit);
- 
---- a/drivers/usb/host/adm5120-dbg.c
-+++ b/drivers/usb/host/adm5120-dbg.c
-@@ -390,6 +390,42 @@
- 
- #else
- 
-+static int debug_async_open(struct inode *, struct file *);
-+static int debug_periodic_open(struct inode *, struct file *);
-+static int debug_registers_open(struct inode *, struct file *);
-+static int debug_async_open(struct inode *, struct file *);
-+static ssize_t debug_output(struct file*, char __user*, size_t, loff_t*);
-+static int debug_close(struct inode *, struct file *);
-+
-+static const struct file_operations debug_async_fops = {
-+	.owner		= THIS_MODULE,
-+	.open		= debug_async_open,
-+	.read		= debug_output,
-+	.release	= debug_close,
-+};
-+static const struct file_operations debug_periodic_fops = {
-+	.owner		= THIS_MODULE,
-+	.open		= debug_periodic_open,
-+	.read		= debug_output,
-+	.release	= debug_close,
-+};
-+static const struct file_operations debug_registers_fops = {
-+	.owner		= THIS_MODULE,
-+	.open		= debug_registers_open,
-+	.read		= debug_output,
-+	.release	= debug_close,
-+};
-+
-+static struct dentry *admhc_debug_root;
-+
-+struct debug_buffer {
-+	ssize_t (*fill_func)(struct debug_buffer *);    /* fill method */
-+	struct device *dev;
-+	struct mutex mutex;     /* protect filling of buffer */
-+	size_t count;           /* number of characters filled into buffer */
-+	char *page;
-+};
-+
- static ssize_t
- show_list(struct admhcd *ahcd, char *buf, size_t count, struct ed *ed)
- {
-@@ -455,8 +491,7 @@
- 	return count - size;
- }
- 
--static ssize_t
--show_async(struct device *dev, struct device_attribute *attr, char *buf)
-+static ssize_t fill_async_buffer(struct debug_buffer *buf)
- {
- 	struct usb_bus		*bus;
- 	struct usb_hcd		*hcd;
-@@ -464,24 +499,22 @@
- 	size_t			temp;
- 	unsigned long		flags;
- 
--	bus = dev_get_drvdata(dev);
-+	bus = dev_get_drvdata(buf->dev);
- 	hcd = bus_to_hcd(bus);
- 	ahcd = hcd_to_admhcd(hcd);
- 
- 	/* display control and bulk lists together, for simplicity */
- 	spin_lock_irqsave(&ahcd->lock, flags);
--	temp = show_list(ahcd, buf, PAGE_SIZE, ahcd->ed_head);
-+	temp = show_list(ahcd, buf->page, buf->count, ahcd->ed_head);
- 	spin_unlock_irqrestore(&ahcd->lock, flags);
- 
- 	return temp;
- }
--static DEVICE_ATTR(async, S_IRUGO, show_async, NULL);
- 
- 
- #define DBG_SCHED_LIMIT 64
- 
--static ssize_t
--show_periodic(struct device *dev, struct device_attribute *attr, char *buf)
-+static ssize_t fill_periodic_buffer(struct debug_buffer *buf)
- {
- 	struct usb_bus		*bus;
- 	struct usb_hcd		*hcd;
-@@ -496,10 +529,10 @@
- 		return 0;
- 	seen_count = 0;
- 
--	bus = dev_get_drvdata(dev);
-+	bus = dev_get_drvdata(buf->dev);
- 	hcd = bus_to_hcd(bus);
- 	ahcd = hcd_to_admhcd(hcd);
--	next = buf;
-+	next = buf->page;
- 	size = PAGE_SIZE;
- 
- 	temp = scnprintf(next, size, "size = %d\n", NUM_INTS);
-@@ -574,13 +607,11 @@
- 
- 	return PAGE_SIZE - size;
- }
--static DEVICE_ATTR(periodic, S_IRUGO, show_periodic, NULL);
- 
- 
- #undef DBG_SCHED_LIMIT
- 
--static ssize_t
--show_registers(struct device *dev, struct device_attribute *attr, char *buf)
-+static ssize_t fill_registers_buffer(struct debug_buffer *buf)
- {
- 	struct usb_bus		*bus;
- 	struct usb_hcd		*hcd;
-@@ -591,11 +622,11 @@
- 	char			*next;
- 	u32			rdata;
- 
--	bus = dev_get_drvdata(dev);
-+	bus = dev_get_drvdata(buf->dev);
- 	hcd = bus_to_hcd(bus);
- 	ahcd = hcd_to_admhcd(hcd);
- 	regs = ahcd->regs;
--	next = buf;
-+	next = buf->page;
- 	size = PAGE_SIZE;
- 
- 	spin_lock_irqsave(&ahcd->lock, flags);
-@@ -656,27 +687,154 @@
- 	spin_unlock_irqrestore(&ahcd->lock, flags);
- 	return PAGE_SIZE - size;
- }
--static DEVICE_ATTR(registers, S_IRUGO, show_registers, NULL);
- 
- 
--static inline void create_debug_files (struct admhcd *ahcd)
-+static struct debug_buffer *alloc_buffer(struct device *dev,
-+				ssize_t (*fill_func)(struct debug_buffer *))
- {
--	struct device *dev = admhcd_to_hcd(ahcd)->self.dev;
--	int retval;
-+	struct debug_buffer *buf;
- 
--	retval = device_create_file(dev, &dev_attr_async);
--	retval = device_create_file(dev, &dev_attr_periodic);
--	retval = device_create_file(dev, &dev_attr_registers);
--	admhc_dbg(ahcd, "created debug files\n");
-+	buf = kzalloc(sizeof(struct debug_buffer), GFP_KERNEL);
-+
-+	if (buf) {
-+		buf->dev = dev;
-+		buf->fill_func = fill_func;
-+		mutex_init(&buf->mutex);
-+	}
-+
-+	return buf;
-+}
-+
-+static int fill_buffer(struct debug_buffer *buf)
-+{
-+	int ret = 0;
-+
-+	if (!buf->page)
-+		buf->page = (char *)get_zeroed_page(GFP_KERNEL);
-+
-+	if (!buf->page) {
-+		ret = -ENOMEM;
-+		goto out;
-+	}
-+
-+	ret = buf->fill_func(buf);
-+
-+	if (ret >= 0) {
-+		buf->count = ret;
-+		ret = 0;
-+	}
-+
-+out:
-+	return ret;
-+}
-+
-+static ssize_t debug_output(struct file *file, char __user *user_buf,
-+			size_t len, loff_t *offset)
-+{
-+	struct debug_buffer *buf = file->private_data;
-+	int ret = 0;
-+
-+	mutex_lock(&buf->mutex);
-+	if (buf->count == 0) {
-+		ret = fill_buffer(buf);
-+		if (ret != 0) {
-+			mutex_unlock(&buf->mutex);
-+			goto out;
-+		}
-+	}
-+	mutex_unlock(&buf->mutex);
-+
-+	ret = simple_read_from_buffer(user_buf, len, offset,
-+					buf->page, buf->count);
-+
-+out:
-+	return ret;
-+}
-+
-+static int debug_close(struct inode *inode, struct file *file)
-+{
-+	struct debug_buffer *buf = file->private_data;
-+
-+	if (buf) {
-+		if (buf->page)
-+			free_page((unsigned long)buf->page);
-+		kfree(buf);
-+	}
-+
-+	return 0;
- }
- 
--static inline void remove_debug_files (struct admhcd *ahcd)
-+static int debug_async_open(struct inode *inode, struct file *file)
- {
--	struct device *dev = admhcd_to_hcd(ahcd)->self.dev;
-+	file->private_data = alloc_buffer(inode->i_private, fill_async_buffer);
-+
-+	return file->private_data ? 0 : -ENOMEM;
-+}
-+
-+static int debug_periodic_open(struct inode *inode, struct file *file)
-+{
-+	file->private_data = alloc_buffer(inode->i_private,
-+						fill_periodic_buffer);
-+
-+	return file->private_data ? 0 : -ENOMEM;
-+}
- 
--	device_remove_file(dev, &dev_attr_async);
--	device_remove_file(dev, &dev_attr_periodic);
--	device_remove_file(dev, &dev_attr_registers);
-+static int debug_registers_open(struct inode *inode, struct file *file)
-+{
-+	file->private_data = alloc_buffer(inode->i_private,
-+						fill_registers_buffer);
-+
-+	return file->private_data ? 0 : -ENOMEM;
-+}
-+
-+static inline void create_debug_files(struct admhcd *ahcd)
-+{
-+	struct usb_bus *bus = &admhcd_to_hcd(ahcd)->self;
-+	struct device *dev = bus->dev;
-+
-+	ahcd->debug_dir = debugfs_create_dir(bus->bus_name, admhc_debug_root);
-+	if (!ahcd->debug_dir)
-+		goto dir_error;
-+
-+	ahcd->debug_async = debugfs_create_file("async", S_IRUGO,
-+						ahcd->debug_dir, dev,
-+						&debug_async_fops);
-+	if (!ahcd->debug_async)
-+		goto async_error;
-+
-+	ahcd->debug_periodic = debugfs_create_file("periodic", S_IRUGO,
-+						ahcd->debug_dir, dev,
-+						&debug_periodic_fops);
-+	if (!ahcd->debug_periodic)
-+		goto periodic_error;
-+
-+	ahcd->debug_registers = debugfs_create_file("registers", S_IRUGO,
-+						ahcd->debug_dir, dev,
-+						&debug_registers_fops);
-+	if (!ahcd->debug_registers)
-+		goto registers_error;
-+
-+	admhc_dbg(ahcd, "created debug files\n");
-+	return;
-+
-+registers_error:
-+	debugfs_remove(ahcd->debug_periodic);
-+periodic_error:
-+	debugfs_remove(ahcd->debug_async);
-+async_error:
-+	debugfs_remove(ahcd->debug_dir);
-+dir_error:
-+	ahcd->debug_periodic = NULL;
-+	ahcd->debug_async = NULL;
-+	ahcd->debug_dir = NULL;
-+}
-+
-+static inline void remove_debug_files(struct admhcd *ahcd)
-+{
-+	debugfs_remove(ahcd->debug_registers);
-+	debugfs_remove(ahcd->debug_periodic);
-+	debugfs_remove(ahcd->debug_async);
-+	debugfs_remove(ahcd->debug_dir);
- }
- 
- #endif
diff --git a/target/linux/adm5120/patches-2.6.25/910-pata_rb153_cf_fix_compiler_warning.patch b/target/linux/adm5120/patches-2.6.25/910-pata_rb153_cf_fix_compiler_warning.patch
deleted file mode 100644
index 27ae067d9..000000000
--- a/target/linux/adm5120/patches-2.6.25/910-pata_rb153_cf_fix_compiler_warning.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- a/drivers/ata/pata_rb153_cf.c
-+++ b/drivers/ata/pata_rb153_cf.c
-@@ -68,20 +68,23 @@
- 	rb153_pata_finish_io(ap);
- }
- 
--static void rb153_pata_data_xfer(struct ata_device *adev, unsigned char *buf,
-+static unsigned int rb153_pata_data_xfer(struct ata_device *adev, unsigned char *buf,
- 				unsigned int buflen, int write_data)
- {
- 	void __iomem *ioaddr = adev->link->ap->ioaddr.data_addr;
--
-+	unsigned int t;
-+	
-+	t = buflen;	
- 	if (write_data) {
--		for (; buflen > 0; buflen--, buf++)
-+		for (; t > 0; t--, buf++)
- 			writeb(*buf, ioaddr);
- 	} else {
--		for (; buflen > 0; buflen--, buf++)
-+		for (; t > 0; t--, buf++)
- 			*buf = readb(ioaddr);
- 	}
- 
- 	rb153_pata_finish_io(adev->link->ap);
-+	return buflen;
- }
- 
- static void rb153_pata_freeze(struct ata_port *ap)
diff --git a/target/linux/adm5120/patches/001-adm5120.patch b/target/linux/adm5120/patches/001-adm5120.patch
index 26c026504..84d0a8d2f 100644
--- a/target/linux/adm5120/patches/001-adm5120.patch
+++ b/target/linux/adm5120/patches/001-adm5120.patch
@@ -1,6 +1,6 @@
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -16,6 +16,20 @@
+@@ -18,6 +18,20 @@
  	prompt "System type"
  	default SGI_IP22
  
@@ -21,17 +21,17 @@
  config MACH_ALCHEMY
  	bool "Alchemy processor based machines"
  
-@@ -689,6 +703,7 @@
+@@ -683,6 +697,7 @@
  
  endchoice
  
 +source "arch/mips/adm5120/Kconfig"
  source "arch/mips/au1000/Kconfig"
+ source "arch/mips/basler/excite/Kconfig"
  source "arch/mips/jazz/Kconfig"
- source "arch/mips/lasat/Kconfig"
 --- a/arch/mips/Makefile
 +++ b/arch/mips/Makefile
-@@ -166,6 +166,16 @@
+@@ -174,6 +174,16 @@
  load-$(CONFIG_MACH_JAZZ)	+= 0xffffffff80080000
  
  #
@@ -50,9 +50,9 @@
  core-$(CONFIG_SOC_AU1X00)	+= arch/mips/au1000/common/
 --- a/include/asm-mips/bootinfo.h
 +++ b/include/asm-mips/bootinfo.h
-@@ -198,6 +198,58 @@
- #define MACH_GROUP_BRCM		23	/* Broadcom			*/
- #define  MACH_BCM47XX		1	/* Broadcom BCM47XX		*/
+@@ -94,6 +94,58 @@
+ #define MACH_MSP7120_FPGA       5	/* PMC-Sierra MSP7120 Emulation */
+ #define MACH_MSP_OTHER        255	/* PMC-Sierra unknown board type */
  
 +/*
 + * Valid machtype for group ADMtek ADM5120
@@ -108,4 +108,4 @@
 +
  #define CL_SIZE			COMMAND_LINE_SIZE
  
- const char *get_system_type(void);
+ extern char *system_type;
diff --git a/target/linux/adm5120/patches/002-adm5120_flash.patch b/target/linux/adm5120/patches/002-adm5120_flash.patch
index d2326fa95..143952321 100644
--- a/target/linux/adm5120/patches/002-adm5120_flash.patch
+++ b/target/linux/adm5120/patches/002-adm5120_flash.patch
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/maps/Kconfig
 +++ b/drivers/mtd/maps/Kconfig
-@@ -597,5 +597,9 @@
+@@ -590,5 +590,9 @@
  
  	  This selection automatically selects the map_ram driver.
  
@@ -12,7 +12,7 @@
  
 --- a/drivers/mtd/maps/Makefile
 +++ b/drivers/mtd/maps/Makefile
-@@ -45,6 +45,7 @@
+@@ -44,6 +44,7 @@
  obj-$(CONFIG_MTD_SOLUTIONENGINE)+= solutionengine.o
  obj-$(CONFIG_MTD_PCI)		+= pci.o
  obj-$(CONFIG_MTD_ALCHEMY)       += alchemy-flash.o
diff --git a/target/linux/adm5120/patches/003-adm5120_switch.patch b/target/linux/adm5120/patches/003-adm5120_switch.patch
index 1d2e428dd..20718119f 100644
--- a/target/linux/adm5120/patches/003-adm5120_switch.patch
+++ b/target/linux/adm5120/patches/003-adm5120_switch.patch
@@ -1,6 +1,6 @@
 --- a/drivers/net/Kconfig
 +++ b/drivers/net/Kconfig
-@@ -601,6 +601,10 @@
+@@ -606,6 +606,10 @@
  	  If you have an Alchemy Semi AU1X00 based system
  	  say Y.  Otherwise, say N.
  
@@ -13,7 +13,7 @@
  	depends on PCI && SGI_IP27
 --- a/drivers/net/Makefile
 +++ b/drivers/net/Makefile
-@@ -183,6 +183,7 @@
+@@ -187,6 +187,7 @@
  # This is also a 82596 and should probably be merged
  obj-$(CONFIG_LP486E) += lp486e.o
  
diff --git a/target/linux/adm5120/patches/005-adm5120_usb.patch b/target/linux/adm5120/patches/005-adm5120_usb.patch
index ef9a4fd9d..4ab31dd98 100644
--- a/target/linux/adm5120/patches/005-adm5120_usb.patch
+++ b/target/linux/adm5120/patches/005-adm5120_usb.patch
@@ -1,6 +1,6 @@
 --- a/drivers/usb/host/Kconfig
 +++ b/drivers/usb/host/Kconfig
-@@ -261,3 +261,6 @@
+@@ -260,3 +260,6 @@
  	  To compile this driver as a module, choose M here: the
  	  module will be called r8a66597-hcd.
  
diff --git a/target/linux/adm5120/patches/006-adm5120_leds.patch b/target/linux/adm5120/patches/006-adm5120_leds.patch
index 6c8886da5..ac108e512 100644
--- a/target/linux/adm5120/patches/006-adm5120_leds.patch
+++ b/target/linux/adm5120/patches/006-adm5120_leds.patch
@@ -1,8 +1,8 @@
 --- a/drivers/leds/Kconfig
 +++ b/drivers/leds/Kconfig
-@@ -18,6 +18,21 @@
- 
- comment "LED drivers"
+@@ -25,6 +25,21 @@
+ 	  This option enables support for LEDs driven using outputs
+ 	  of the dedicated PWM controller found on newer Atmel SOCs.
  
 +config LEDS_ADM5120
 +	tristate "LED Support for ADM5120 GPIO LEDs"
@@ -29,6 +29,6 @@
  
  # LED Platform Drivers
 +obj-$(CONFIG_LEDS_ADM5120)		+= leds-adm5120.o
+ obj-$(CONFIG_LEDS_ATMEL_PWM)		+= leds-atmel-pwm.o
  obj-$(CONFIG_LEDS_CORGI)		+= leds-corgi.o
  obj-$(CONFIG_LEDS_LOCOMO)		+= leds-locomo.o
- obj-$(CONFIG_LEDS_SPITZ)		+= leds-spitz.o
diff --git a/target/linux/adm5120/patches/007-adm5120_pci.patch b/target/linux/adm5120/patches/007-adm5120_pci.patch
index 540b7d90e..75d3be65c 100644
--- a/target/linux/adm5120/patches/007-adm5120_pci.patch
+++ b/target/linux/adm5120/patches/007-adm5120_pci.patch
@@ -7,7 +7,7 @@
 +obj-$(CONFIG_PCI_ADM5120)	+= pci-adm5120.o
 --- a/include/linux/pci_ids.h
 +++ b/include/linux/pci_ids.h
-@@ -1703,6 +1703,9 @@
+@@ -1705,6 +1705,9 @@
  #define PCI_VENDOR_ID_ESDGMBH		0x12fe
  #define PCI_DEVICE_ID_ESDGMBH_CPCIASIO4 0x0111
  
diff --git a/target/linux/adm5120/patches/009-adm5120_leds_switch_trigger.patch b/target/linux/adm5120/patches/009-adm5120_leds_switch_trigger.patch
index bb0403875..18280ed85 100644
--- a/target/linux/adm5120/patches/009-adm5120_leds_switch_trigger.patch
+++ b/target/linux/adm5120/patches/009-adm5120_leds_switch_trigger.patch
@@ -1,6 +1,6 @@
 --- a/drivers/leds/Kconfig
 +++ b/drivers/leds/Kconfig
-@@ -178,4 +178,12 @@
+@@ -213,4 +213,12 @@
  	  This allows LEDs to be initialised in the ON state.
  	  If unsure, say Y.
  
@@ -15,7 +15,7 @@
  endif # NEW_LEDS
 --- a/drivers/leds/Makefile
 +++ b/drivers/leds/Makefile
-@@ -28,3 +28,4 @@
+@@ -30,3 +30,4 @@
  obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT)	+= ledtrig-heartbeat.o
  obj-$(CONFIG_LEDS_TRIGGER_MORSE)	+= ledtrig-morse.o
  obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON)	+= ledtrig-default-on.o
diff --git a/target/linux/adm5120/patches/100-mtd_myloder_partition_parser.patch b/target/linux/adm5120/patches/100-mtd_myloder_partition_parser.patch
index fe9c45b09..f5188936d 100644
--- a/target/linux/adm5120/patches/100-mtd_myloder_partition_parser.patch
+++ b/target/linux/adm5120/patches/100-mtd_myloder_partition_parser.patch
@@ -1,8 +1,8 @@
 --- a/drivers/mtd/Kconfig
 +++ b/drivers/mtd/Kconfig
-@@ -160,6 +160,22 @@
- 	  for your particular device. It won't happen automatically. The
- 	  'armflash' map driver (CONFIG_MTD_ARMFLASH) does this, for example.
+@@ -168,6 +168,22 @@
+ 	  the partition map from the children of the flash node,
+ 	  as described in Documentation/powerpc/booting-without-of.txt.
  
 +config MTD_MYLOADER_PARTS
 +	tristate "MyLoader partition parsing"
@@ -25,10 +25,10 @@
  config MTD_CHAR
 --- a/drivers/mtd/Makefile
 +++ b/drivers/mtd/Makefile
-@@ -11,6 +11,7 @@
- obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
+@@ -12,6 +12,7 @@
  obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
  obj-$(CONFIG_MTD_AFS_PARTS)	+= afs.o
+ obj-$(CONFIG_MTD_OF_PARTS)      += ofpart.o
 +obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o
  
  # 'Users' - code which presents functionality to userspace.
diff --git a/target/linux/adm5120/patches/101-cfi_fixup_macronix_bootloc.patch b/target/linux/adm5120/patches/101-cfi_fixup_macronix_bootloc.patch
index 9acb626bb..917908893 100644
--- a/target/linux/adm5120/patches/101-cfi_fixup_macronix_bootloc.patch
+++ b/target/linux/adm5120/patches/101-cfi_fixup_macronix_bootloc.patch
@@ -20,8 +20,8 @@
  static int cfi_amdstd_read (struct mtd_info *, loff_t, size_t, size_t *, u_char *);
  static int cfi_amdstd_write_words(struct mtd_info *, loff_t, size_t, size_t *, const u_char *);
  static int cfi_amdstd_write_buffers(struct mtd_info *, loff_t, size_t, size_t *, const u_char *);
-@@ -217,6 +224,41 @@
- 	mtd->flags |= MTD_STUPID_LOCK;
+@@ -221,6 +228,41 @@
+ 	mtd->flags |= MTD_POWERUP_LOCK;
  }
  
 +#ifdef CONFIG_MTD_CFI_FIXUP_MACRONIX_BOOTLOC
@@ -60,18 +60,18 @@
 +#endif /* CONFIG_MTD_CFI_FIXUP_MACRONIX_BOOTLOC */
 +
  static struct cfi_fixup cfi_fixup_table[] = {
- #ifdef AMD_BOOTLOC_BUG
- 	{ CFI_MFR_AMD, CFI_ID_ANY, fixup_amd_bootblock, NULL },
-@@ -231,6 +273,9 @@
- 	{ CFI_MFR_ANY, CFI_ID_ANY, fixup_use_write_buffers, NULL, },
- #endif
  	{ CFI_MFR_ATMEL, CFI_ID_ANY, fixup_convert_atmel_pri, NULL },
+ #ifdef AMD_BOOTLOC_BUG
+@@ -252,6 +294,9 @@
+ 	 */
+ 	{ CFI_MFR_ANY, CFI_ID_ANY, fixup_use_erase_chip, NULL },
+ 	{ CFI_MFR_ATMEL, AT49BV6416, fixup_use_atmel_lock, NULL },
 +#ifdef CONFIG_MTD_CFI_FIXUP_MACRONIX_BOOTLOC
 +	{ MANUFACTURER_MACRONIX, CFI_ID_ANY, fixup_macronix_bootloc, NULL, },
 +#endif
  	{ 0, 0, NULL, NULL }
  };
- static struct cfi_fixup jedec_fixup_table[] = {
+ 
 --- a/drivers/mtd/chips/Kconfig
 +++ b/drivers/mtd/chips/Kconfig
 @@ -196,6 +196,14 @@
diff --git a/target/linux/adm5120/patches/102-jedec_pmc_39lvxxx_chips.patch b/target/linux/adm5120/patches/102-jedec_pmc_39lvxxx_chips.patch
index 0c512ea6a..7f352f67e 100644
--- a/target/linux/adm5120/patches/102-jedec_pmc_39lvxxx_chips.patch
+++ b/target/linux/adm5120/patches/102-jedec_pmc_39lvxxx_chips.patch
@@ -11,7 +11,7 @@
  #define PM49FL002	0x006D
  #define PM49FL004	0x006E
  #define PM49FL008	0x006A
-@@ -1264,6 +1268,58 @@
+@@ -1170,6 +1174,54 @@
  			ERASEINFO(0x02000,2),
  			ERASEINFO(0x04000,1),
  		}
@@ -19,12 +19,11 @@
 +		.mfr_id		= MANUFACTURER_PMC,
 +		.dev_id		= PM39LV512,
 +		.name		= "PMC Pm39LV512",
-+ 		.uaddr		= {
-+			[0] = MTD_UADDR_0x0555_0x02AA /* x8 */
-+		},
-+		.DevSize	= SIZE_64KiB,
-+		.CmdSet		= P_ID_AMD_STD,
-+		.NumEraseRegions= 1,
++		.devtypes	= CFI_DEVICETYPE_X8,
++		.uaddr		= MTD_UADDR_0x0555_0x02AA,
++		.dev_size	= SIZE_64KiB,
++		.cmd_set	= P_ID_AMD_STD,
++		.nr_regions	= 1,
 +		.regions	= {
 +			ERASEINFO(0x01000,16),
 +		}
@@ -32,12 +31,11 @@
 +		.mfr_id		= MANUFACTURER_PMC,
 +		.dev_id		= PM39LV010,
 +		.name		= "PMC Pm39LV010",
-+ 		.uaddr		= {
-+			[0] = MTD_UADDR_0x0555_0x02AA /* x8 */
-+		},
-+		.DevSize	= SIZE_128KiB,
-+		.CmdSet		= P_ID_AMD_STD,
-+		.NumEraseRegions= 1,
++		.devtypes	= CFI_DEVICETYPE_X8,
++		.uaddr		= MTD_UADDR_0x0555_0x02AA,
++		.dev_size	= SIZE_128KiB,
++		.cmd_set	= P_ID_AMD_STD,
++		.nr_regions	= 1,
 +		.regions	= {
 +			ERASEINFO(0x01000,32),
 +		}
@@ -45,12 +43,11 @@
 +		.mfr_id		= MANUFACTURER_PMC,
 +		.dev_id		= PM39LV020,
 +		.name		= "PMC Pm39LV020",
-+ 		.uaddr		= {
-+			[0] = MTD_UADDR_0x0555_0x02AA /* x8 */
-+		},
-+		.DevSize	= SIZE_256KiB,
-+		.CmdSet		= P_ID_AMD_STD,
-+		.NumEraseRegions= 1,
++		.devtypes	= CFI_DEVICETYPE_X8,
++		.uaddr		= MTD_UADDR_0x0555_0x02AA,
++		.dev_size	= SIZE_256KiB,
++		.cmd_set	= P_ID_AMD_STD,
++		.nr_regions	= 1,
 +		.regions	= {
 +			ERASEINFO(0x01000,64),
 +		}
@@ -58,12 +55,11 @@
 +		.mfr_id		= MANUFACTURER_PMC,
 +		.dev_id		= PM39LV040,
 +		.name		= "PMC Pm39LV040",
-+ 		.uaddr		= {
-+			[0] = MTD_UADDR_0x0555_0x02AA /* x8 */
-+		},
-+		.DevSize	= SIZE_512KiB,
-+		.CmdSet		= P_ID_AMD_STD,
-+		.NumEraseRegions= 1,
++		.devtypes	= CFI_DEVICETYPE_X8,
++		.uaddr		= MTD_UADDR_0x0555_0x02AA,
++		.dev_size	= SIZE_512KiB,
++		.cmd_set	= P_ID_AMD_STD,
++		.nr_regions	= 1,
 +		.regions	= {
 +			ERASEINFO(0x01000,128),
 +		}
diff --git a/target/linux/adm5120/patches/120-rb153_cf_driver.patch b/target/linux/adm5120/patches/120-rb153_cf_driver.patch
index ad07b7a8a..6f371e340 100644
--- a/target/linux/adm5120/patches/120-rb153_cf_driver.patch
+++ b/target/linux/adm5120/patches/120-rb153_cf_driver.patch
@@ -1,6 +1,6 @@
 --- a/drivers/ata/Makefile
 +++ b/drivers/ata/Makefile
-@@ -69,6 +69,7 @@
+@@ -71,6 +71,7 @@
  obj-$(CONFIG_PATA_PLATFORM)	+= pata_platform.o
  obj-$(CONFIG_PATA_OF_PLATFORM)	+= pata_of_platform.o
  obj-$(CONFIG_PATA_ICSIDE)	+= pata_icside.o
@@ -10,7 +10,7 @@
  # Should be last but one libata driver
 --- a/drivers/ata/Kconfig
 +++ b/drivers/ata/Kconfig
-@@ -660,4 +660,13 @@
+@@ -679,4 +679,13 @@
  
  	  If unsure, say N.
  
diff --git a/target/linux/adm5120/patches/202-pci_disable_common_quirks.patch b/target/linux/adm5120/patches/202-pci_disable_common_quirks.patch
index 13142add3..25149885a 100644
--- a/target/linux/adm5120/patches/202-pci_disable_common_quirks.patch
+++ b/target/linux/adm5120/patches/202-pci_disable_common_quirks.patch
@@ -15,15 +15,15 @@
  	default y
 --- a/drivers/pci/quirks.c
 +++ b/drivers/pci/quirks.c
-@@ -23,6 +23,7 @@
- #include <linux/acpi.h>
+@@ -24,6 +24,7 @@
+ #include <linux/kallsyms.h>
  #include "pci.h"
  
 +#ifndef CONFIG_PCI_DISABLE_COMMON_QUIRKS
  /* The Mellanox Tavor device gives false positive parity errors
   * Mark this device with a broken_parity_status, to allow
   * PCI scanning code to "skip" this now blacklisted device.
-@@ -1480,6 +1481,7 @@
+@@ -1495,6 +1496,7 @@
  	}
  }
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NCR, PCI_DEVICE_ID_NCR_53C810, fixup_rev1_53c810);
@@ -31,7 +31,7 @@
  
  static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_fixup *end)
  {
-@@ -1543,6 +1545,7 @@
+@@ -1562,6 +1564,7 @@
  }
  EXPORT_SYMBOL(pci_fixup_device);
  
@@ -39,7 +39,7 @@
  /* Enable 1k I/O space granularity on the Intel P64H2 */
  static void __devinit quirk_p64h2_1k_io(struct pci_dev *dev)
  {
-@@ -1756,3 +1759,4 @@
+@@ -1875,3 +1878,4 @@
  			quirk_msi_intx_disable_bug);
  
  #endif /* CONFIG_PCI_MSI */
diff --git a/target/linux/adm5120/patches/203-gpio_leds_brightness.patch b/target/linux/adm5120/patches/203-gpio_leds_brightness.patch
index 3e9f5271c..06394da29 100644
--- a/target/linux/adm5120/patches/203-gpio_leds_brightness.patch
+++ b/target/linux/adm5120/patches/203-gpio_leds_brightness.patch
@@ -23,5 +23,5 @@
 +		break;
 +	}
  
- 	/* setting GPIOs with I2C/etc requires a preemptible task context */
- 	if (led_dat->can_sleep) {
+ 	/* Setting GPIOs with I2C/etc requires a task context, and we don't
+ 	 * seem to have a reliable way to know if we're already in one; so
diff --git a/target/linux/adm5120/patches/310-adm5120_wdt.patch b/target/linux/adm5120/patches/310-adm5120_wdt.patch
index 1136ee8e6..78eb62862 100644
--- a/target/linux/adm5120/patches/310-adm5120_wdt.patch
+++ b/target/linux/adm5120/patches/310-adm5120_wdt.patch
@@ -1,6 +1,6 @@
 --- a/drivers/watchdog/Kconfig
 +++ b/drivers/watchdog/Kconfig
-@@ -607,6 +607,18 @@
+@@ -619,6 +619,18 @@
  
  # MIPS Architecture
  
@@ -18,10 +18,10 @@
 +
  config INDYDOG
  	tristate "Indy/I2 Hardware Watchdog"
- 	depends on SGI_IP22
+ 	depends on SGI_HAS_INDYDOG
 --- a/drivers/watchdog/Makefile
 +++ b/drivers/watchdog/Makefile
-@@ -89,6 +89,7 @@
+@@ -90,6 +90,7 @@
  # M68KNOMMU Architecture
  
  # MIPS Architecture
diff --git a/target/linux/adm5120/router_be/config-2.6.25 b/target/linux/adm5120/router_be/config-2.6.25
deleted file mode 100644
index b61be5cfe..000000000
--- a/target/linux/adm5120/router_be/config-2.6.25
+++ /dev/null
@@ -1,269 +0,0 @@
-CONFIG_32BIT=y
-# CONFIG_64BIT is not set
-CONFIG_ADM5120_CPU_OVERRIDES=y
-CONFIG_ADM5120_WDT=y
-# CONFIG_ARCH_HAS_ILOG2_U32 is not set
-# CONFIG_ARCH_HAS_ILOG2_U64 is not set
-CONFIG_ARCH_POPULATES_NODE_MAP=y
-# CONFIG_ARCH_SUPPORTS_MSI is not set
-CONFIG_ARCH_SUPPORTS_OPROFILE=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_ARM_AMBA=y
-CONFIG_BASE_SMALL=0
-CONFIG_BAYCOM_SER_FDX=m
-CONFIG_BAYCOM_SER_HDX=m
-# CONFIG_BCM47XX is not set
-CONFIG_BINFMT_MISC=m
-CONFIG_BITREVERSE=y
-CONFIG_CEVT_R4K=y
-CONFIG_CIFS_DEBUG2=y
-CONFIG_CIFS_EXPERIMENTAL=y
-CONFIG_CIFS_STATS2=y
-CONFIG_CIFS_WEAK_PW_HASH=y
-CONFIG_CIFS_XATTR=y
-CONFIG_CLASSIC_RCU=y
-CONFIG_CMDLINE="console=ttyS0,115200 rootfstype=squashfs,jffs2 init=/etc/preinit"
-CONFIG_CPU_BIG_ENDIAN=y
-CONFIG_CPU_HAS_LLSC=y
-CONFIG_CPU_HAS_PREFETCH=y
-CONFIG_CPU_HAS_SYNC=y
-# CONFIG_CPU_LITTLE_ENDIAN is not set
-# CONFIG_CPU_LOONGSON2 is not set
-CONFIG_CPU_MIPS32=y
-CONFIG_CPU_MIPS32_R1=y
-# CONFIG_CPU_MIPS32_R2 is not set
-# CONFIG_CPU_MIPS64_R1 is not set
-# CONFIG_CPU_MIPS64_R2 is not set
-CONFIG_CPU_MIPSR1=y
-# CONFIG_CPU_NEVADA is not set
-# CONFIG_CPU_R10000 is not set
-# CONFIG_CPU_R3000 is not set
-# CONFIG_CPU_R4300 is not set
-# CONFIG_CPU_R4X00 is not set
-# CONFIG_CPU_R5000 is not set
-# CONFIG_CPU_R5432 is not set
-# CONFIG_CPU_R6000 is not set
-# CONFIG_CPU_R8000 is not set
-# CONFIG_CPU_RM7000 is not set
-# CONFIG_CPU_RM9000 is not set
-# CONFIG_CPU_SB1 is not set
-CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
-CONFIG_CPU_SUPPORTS_HIGHMEM=y
-# CONFIG_CPU_TX39XX is not set
-# CONFIG_CPU_TX49XX is not set
-# CONFIG_CPU_VR41XX is not set
-CONFIG_CRYPTO_AEAD=m
-CONFIG_CRYPTO_AUTHENC=m
-CONFIG_CRYPTO_GF128MUL=m
-CONFIG_CSRC_R4K=y
-CONFIG_DEVPORT=y
-# CONFIG_DM9000 is not set
-CONFIG_DMA_NEED_PCI_MAP_STATE=y
-CONFIG_DMA_NONCOHERENT=y
-# CONFIG_E1000E_ENABLED is not set
-CONFIG_EARLY_PRINTK=y
-CONFIG_ELF_CORE=y
-# CONFIG_EXT3_FS_POSIX_ACL is not set
-# CONFIG_EXT3_FS_SECURITY is not set
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_FS_MBCACHE=m
-CONFIG_FS_POSIX_ACL=y
-CONFIG_GENERIC_ACL=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_GENERIC_FIND_NEXT_BIT=y
-CONFIG_GENERIC_GPIO=y
-# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set
-CONFIG_HAS_DMA=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAVE_IDE=y
-# CONFIG_HAVE_KPROBES is not set
-# CONFIG_HAVE_KRETPROBES is not set
-CONFIG_HAVE_OPROFILE=y
-CONFIG_HID=m
-CONFIG_HID_SUPPORT=y
-CONFIG_HW_HAS_PCI=y
-CONFIG_HW_RANDOM=y
-CONFIG_HZ=250
-# CONFIG_HZ_100 is not set
-CONFIG_HZ_250=y
-# CONFIG_I2C is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IDE is not set
-CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_INOTIFY=y
-CONFIG_INOTIFY_USER=y
-CONFIG_INPUT=m
-# CONFIG_INPUT_EVDEV is not set
-CONFIG_IPV6_MIP6=m
-CONFIG_IPV6_PRIVACY=y
-CONFIG_IPV6_ROUTE_INFO=y
-CONFIG_IPV6_TUNNEL=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IRQ_CPU=y
-# CONFIG_JOLIET is not set
-CONFIG_LEDS_ADM5120=m
-# CONFIG_LEDS_ADM5120_DIAG is not set
-# CONFIG_LEDS_ADM5120_EXPERIMENTAL is not set
-# CONFIG_LEDS_ALIX is not set
-CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_TRIGGER_ADM5120_SWITCH=m
-CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=256
-# CONFIG_LEMOTE_FULONG is not set
-CONFIG_LZO_COMPRESS=m
-CONFIG_LZO_DECOMPRESS=m
-# CONFIG_MACH_ALCHEMY is not set
-# CONFIG_MACH_DECSTATION is not set
-# CONFIG_MACH_JAZZ is not set
-# CONFIG_MACH_VR41XX is not set
-# CONFIG_MEMSTICK is not set
-CONFIG_MII=m
-# CONFIG_MINIX_FS is not set
-CONFIG_MIPS=y
-CONFIG_MIPS_ADM5120=y
-CONFIG_MIPS_ADM5120_ENET=y
-# CONFIG_MIPS_ATLAS is not set
-# CONFIG_MIPS_COBALT is not set
-CONFIG_MIPS_L1_CACHE_SHIFT=5
-# CONFIG_MIPS_MALTA is not set
-CONFIG_MIPS_MT_DISABLED=y
-# CONFIG_MIPS_MT_SMP is not set
-# CONFIG_MIPS_MT_SMTC is not set
-# CONFIG_MIPS_SEAD is not set
-# CONFIG_MIPS_SIM is not set
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_MTD=y
-# CONFIG_MTD_ABSENT is not set
-CONFIG_MTD_ADM5120=y
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_BLOCK2MTD=y
-CONFIG_MTD_CFI=y
-# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_CFI_FIXUP_MACRONIX_BOOTLOC=y
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-# CONFIG_MTD_CFI_INTELEXT is not set
-# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=y
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_COMPLEX_MAPPINGS=y
-# CONFIG_MTD_CONCAT is not set
-# CONFIG_MTD_DEBUG is not set
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-CONFIG_MTD_GEN_PROBE=y
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_MYLOADER_PARTS is not set
-# CONFIG_MTD_ONENAND is not set
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_PCI is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_PHYSMAP is not set
-# CONFIG_MTD_PLATRAM is not set
-# CONFIG_MTD_PMC551 is not set
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_SLRAM is not set
-CONFIG_MTD_TRXSPLIT=y
-# CONFIG_NET_PCI is not set
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_NET_VENDOR_3COM is not set
-# CONFIG_NO_IOPORT is not set
-# CONFIG_PAGE_SIZE_16KB is not set
-CONFIG_PAGE_SIZE_4KB=y
-# CONFIG_PAGE_SIZE_64KB is not set
-# CONFIG_PAGE_SIZE_8KB is not set
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_PCI=y
-# CONFIG_PCIPCWATCHDOG is not set
-CONFIG_PCI_ADM5120=y
-CONFIG_PCI_DISABLE_COMMON_QUIRKS=y
-CONFIG_PCI_DOMAINS=y
-# CONFIG_PMC_MSP is not set
-# CONFIG_PMC_YOSEMITE is not set
-# CONFIG_PNX8550_JBS is not set
-# CONFIG_PNX8550_STB810 is not set
-# CONFIG_RTC is not set
-CONFIG_RTC_LIB=y
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
-CONFIG_SCSI_WAIT_SCAN=m
-# CONFIG_SERIAL_8250 is not set
-CONFIG_SERIAL_AMBA_PL010=y
-CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
-CONFIG_SERIAL_AMBA_PL010_NUMPORTS=2
-CONFIG_SERIAL_AMBA_PL010_PORTNAME="ttyS"
-# CONFIG_SERIAL_AMBA_PL011 is not set
-CONFIG_SERIO=y
-# CONFIG_SERIO_AMBAKMI is not set
-# CONFIG_SERIO_I8042 is not set
-# CONFIG_SERIO_LIBPS2 is not set
-# CONFIG_SERIO_PCIPS2 is not set
-# CONFIG_SERIO_RAW is not set
-CONFIG_SERIO_SERPORT=y
-# CONFIG_SGI_IP22 is not set
-# CONFIG_SGI_IP27 is not set
-# CONFIG_SGI_IP28 is not set
-# CONFIG_SGI_IP32 is not set
-# CONFIG_SIBYTE_BIGSUR is not set
-# CONFIG_SIBYTE_CARMEL is not set
-# CONFIG_SIBYTE_CRHINE is not set
-# CONFIG_SIBYTE_CRHONE is not set
-# CONFIG_SIBYTE_LITTLESUR is not set
-# CONFIG_SIBYTE_RHONE is not set
-# CONFIG_SIBYTE_SENTOSA is not set
-# CONFIG_SIBYTE_SWARM is not set
-CONFIG_SLABINFO=y
-CONFIG_SOFT_WATCHDOG=m
-# CONFIG_SPARSEMEM_STATIC is not set
-# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
-CONFIG_SSB_POSSIBLE=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_SYS_HAS_CPU_MIPS32_R1=y
-CONFIG_SYS_HAS_EARLY_PRINTK=y
-CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
-CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
-CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
-CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
-# CONFIG_THERMAL is not set
-CONFIG_TICK_ONESHOT=y
-CONFIG_TMPFS_POSIX_ACL=y
-# CONFIG_TOSHIBA_JMR3927 is not set
-# CONFIG_TOSHIBA_RBTX4927 is not set
-# CONFIG_TOSHIBA_RBTX4938 is not set
-CONFIG_TRAD_SIGNALS=y
-CONFIG_USB=m
-# CONFIG_USBPCWATCHDOG is not set
-CONFIG_USB_ADM5120_HCD=m
-CONFIG_USB_DEBUG=y
-CONFIG_USB_EHCI_HCD=m
-# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
-# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
-CONFIG_USB_OHCI_HCD=m
-# CONFIG_USB_R8A66597_HCD is not set
-# CONFIG_USB_UHCI_HCD is not set
-# CONFIG_VGASTATE is not set
-CONFIG_VIDEO_V4L2_COMMON=m
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_ZONE_DMA_FLAG=0
diff --git a/target/linux/adm5120/router_be/config-default b/target/linux/adm5120/router_be/config-default
index 3d0c41fee..b61be5cfe 100644
--- a/target/linux/adm5120/router_be/config-default
+++ b/target/linux/adm5120/router_be/config-default
@@ -7,6 +7,7 @@ CONFIG_ADM5120_WDT=y
 CONFIG_ARCH_POPULATES_NODE_MAP=y
 # CONFIG_ARCH_SUPPORTS_MSI is not set
 CONFIG_ARCH_SUPPORTS_OPROFILE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_ARM_AMBA=y
 CONFIG_BASE_SMALL=0
 CONFIG_BAYCOM_SER_FDX=m
@@ -20,6 +21,7 @@ CONFIG_CIFS_EXPERIMENTAL=y
 CONFIG_CIFS_STATS2=y
 CONFIG_CIFS_WEAK_PW_HASH=y
 CONFIG_CIFS_XATTR=y
+CONFIG_CLASSIC_RCU=y
 CONFIG_CMDLINE="console=ttyS0,115200 rootfstype=squashfs,jffs2 init=/etc/preinit"
 CONFIG_CPU_BIG_ENDIAN=y
 CONFIG_CPU_HAS_LLSC=y
@@ -50,12 +52,15 @@ CONFIG_CPU_SUPPORTS_HIGHMEM=y
 # CONFIG_CPU_TX39XX is not set
 # CONFIG_CPU_TX49XX is not set
 # CONFIG_CPU_VR41XX is not set
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_GF128MUL=m
 CONFIG_CSRC_R4K=y
 CONFIG_DEVPORT=y
 # CONFIG_DM9000 is not set
 CONFIG_DMA_NEED_PCI_MAP_STATE=y
 CONFIG_DMA_NONCOHERENT=y
-# CONFIG_E1000E is not set
+# CONFIG_E1000E_ENABLED is not set
 CONFIG_EARLY_PRINTK=y
 CONFIG_ELF_CORE=y
 # CONFIG_EXT3_FS_POSIX_ACL is not set
@@ -73,6 +78,10 @@ CONFIG_GENERIC_GPIO=y
 CONFIG_HAS_DMA=y
 CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT=y
+CONFIG_HAVE_IDE=y
+# CONFIG_HAVE_KPROBES is not set
+# CONFIG_HAVE_KRETPROBES is not set
+CONFIG_HAVE_OPROFILE=y
 CONFIG_HID=m
 CONFIG_HID_SUPPORT=y
 CONFIG_HW_HAS_PCI=y
@@ -92,7 +101,6 @@ CONFIG_INOTIFY=y
 CONFIG_INOTIFY_USER=y
 CONFIG_INPUT=m
 # CONFIG_INPUT_EVDEV is not set
-# CONFIG_IP1000 is not set
 CONFIG_IPV6_MIP6=m
 CONFIG_IPV6_PRIVACY=y
 CONFIG_IPV6_ROUTE_INFO=y
@@ -103,15 +111,19 @@ CONFIG_IRQ_CPU=y
 CONFIG_LEDS_ADM5120=m
 # CONFIG_LEDS_ADM5120_DIAG is not set
 # CONFIG_LEDS_ADM5120_EXPERIMENTAL is not set
+# CONFIG_LEDS_ALIX is not set
 CONFIG_LEDS_GPIO=m
 CONFIG_LEDS_TRIGGER_ADM5120_SWITCH=m
 CONFIG_LEGACY_PTYS=y
 CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_LEMOTE_FULONG is not set
+CONFIG_LZO_COMPRESS=m
+CONFIG_LZO_DECOMPRESS=m
 # CONFIG_MACH_ALCHEMY is not set
 # CONFIG_MACH_DECSTATION is not set
 # CONFIG_MACH_JAZZ is not set
 # CONFIG_MACH_VR41XX is not set
+# CONFIG_MEMSTICK is not set
 CONFIG_MII=m
 # CONFIG_MINIX_FS is not set
 CONFIG_MIPS=y
@@ -174,7 +186,6 @@ CONFIG_MTD_PARTITIONS=y
 # CONFIG_MTD_ROM is not set
 # CONFIG_MTD_SLRAM is not set
 CONFIG_MTD_TRXSPLIT=y
-CONFIG_NETDEV_1000=y
 # CONFIG_NET_PCI is not set
 # CONFIG_NET_PKTGEN is not set
 # CONFIG_NET_VENDOR_3COM is not set
@@ -213,18 +224,17 @@ CONFIG_SERIO=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SGI_IP22 is not set
 # CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP28 is not set
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_BIGSUR is not set
 # CONFIG_SIBYTE_CARMEL is not set
 # CONFIG_SIBYTE_CRHINE is not set
 # CONFIG_SIBYTE_CRHONE is not set
 # CONFIG_SIBYTE_LITTLESUR is not set
-# CONFIG_SIBYTE_PTSWARM is not set
 # CONFIG_SIBYTE_RHONE is not set
 # CONFIG_SIBYTE_SENTOSA is not set
 # CONFIG_SIBYTE_SWARM is not set
 CONFIG_SLABINFO=y
-# CONFIG_SND_USB_AUDIO is not set
 CONFIG_SOFT_WATCHDOG=m
 # CONFIG_SPARSEMEM_STATIC is not set
 # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
@@ -236,6 +246,7 @@ CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
 CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
 CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
 CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
+# CONFIG_THERMAL is not set
 CONFIG_TICK_ONESHOT=y
 CONFIG_TMPFS_POSIX_ACL=y
 # CONFIG_TOSHIBA_JMR3927 is not set
@@ -244,21 +255,15 @@ CONFIG_TMPFS_POSIX_ACL=y
 CONFIG_TRAD_SIGNALS=y
 CONFIG_USB=m
 # CONFIG_USBPCWATCHDOG is not set
-# CONFIG_USB_ACM is not set
 CONFIG_USB_ADM5120_HCD=m
-# CONFIG_USB_ATM is not set
-# CONFIG_USB_CATC is not set
-# CONFIG_USB_DEVICEFS is not set
-# CONFIG_USB_EHCI_HCD is not set
-# CONFIG_USB_KAWETH is not set
-# CONFIG_USB_PEGASUS is not set
-# CONFIG_USB_PRINTER is not set
-# CONFIG_USB_SERIAL is not set
-# CONFIG_USB_STORAGE is not set
+CONFIG_USB_DEBUG=y
+CONFIG_USB_EHCI_HCD=m
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_R8A66597_HCD is not set
 # CONFIG_USB_UHCI_HCD is not set
-# CONFIG_USB_USBNET is not set
-# CONFIG_USER_NS is not set
 # CONFIG_VGASTATE is not set
+CONFIG_VIDEO_V4L2_COMMON=m
 CONFIG_VM_EVENT_COUNTERS=y
-# CONFIG_ZD1211RW is not set
 CONFIG_ZONE_DMA_FLAG=0
diff --git a/target/linux/adm5120/router_le/config-2.6.25 b/target/linux/adm5120/router_le/config-2.6.25
deleted file mode 100644
index 25ca729b1..000000000
--- a/target/linux/adm5120/router_le/config-2.6.25
+++ /dev/null
@@ -1,291 +0,0 @@
-CONFIG_32BIT=y
-# CONFIG_64BIT is not set
-CONFIG_ADM5120_CPU_OVERRIDES=y
-CONFIG_ADM5120_WDT=y
-# CONFIG_ARCH_HAS_ILOG2_U32 is not set
-# CONFIG_ARCH_HAS_ILOG2_U64 is not set
-CONFIG_ARCH_POPULATES_NODE_MAP=y
-# CONFIG_ARCH_SUPPORTS_MSI is not set
-CONFIG_ARCH_SUPPORTS_OPROFILE=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_ARM_AMBA=y
-CONFIG_BASE_SMALL=0
-CONFIG_BAYCOM_SER_FDX=m
-CONFIG_BAYCOM_SER_HDX=m
-# CONFIG_BCM47XX is not set
-CONFIG_BINFMT_MISC=m
-CONFIG_BITREVERSE=y
-CONFIG_CEVT_R4K=y
-CONFIG_CIFS_DEBUG2=y
-CONFIG_CIFS_EXPERIMENTAL=y
-CONFIG_CIFS_STATS2=y
-CONFIG_CIFS_WEAK_PW_HASH=y
-CONFIG_CIFS_XATTR=y
-CONFIG_CLASSIC_RCU=y
-CONFIG_CMDLINE="console=ttyS0,115200 rootfstype=squashfs,yaffs2,jffs2 init=/etc/preinit"
-# CONFIG_CPU_BIG_ENDIAN is not set
-CONFIG_CPU_HAS_LLSC=y
-CONFIG_CPU_HAS_PREFETCH=y
-CONFIG_CPU_HAS_SYNC=y
-CONFIG_CPU_LITTLE_ENDIAN=y
-# CONFIG_CPU_LOONGSON2 is not set
-CONFIG_CPU_MIPS32=y
-CONFIG_CPU_MIPS32_R1=y
-# CONFIG_CPU_MIPS32_R2 is not set
-# CONFIG_CPU_MIPS64_R1 is not set
-# CONFIG_CPU_MIPS64_R2 is not set
-CONFIG_CPU_MIPSR1=y
-# CONFIG_CPU_NEVADA is not set
-# CONFIG_CPU_R10000 is not set
-# CONFIG_CPU_R3000 is not set
-# CONFIG_CPU_R4300 is not set
-# CONFIG_CPU_R4X00 is not set
-# CONFIG_CPU_R5000 is not set
-# CONFIG_CPU_R5432 is not set
-# CONFIG_CPU_R6000 is not set
-# CONFIG_CPU_R8000 is not set
-# CONFIG_CPU_RM7000 is not set
-# CONFIG_CPU_RM9000 is not set
-# CONFIG_CPU_SB1 is not set
-CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
-CONFIG_CPU_SUPPORTS_HIGHMEM=y
-# CONFIG_CPU_TX39XX is not set
-# CONFIG_CPU_TX49XX is not set
-# CONFIG_CPU_VR41XX is not set
-CONFIG_CRYPTO_AEAD=m
-CONFIG_CRYPTO_AUTHENC=m
-CONFIG_CRYPTO_GF128MUL=m
-CONFIG_CSRC_R4K=y
-CONFIG_DEVPORT=y
-# CONFIG_DM9000 is not set
-CONFIG_DMA_NEED_PCI_MAP_STATE=y
-CONFIG_DMA_NONCOHERENT=y
-# CONFIG_E1000E_ENABLED is not set
-CONFIG_EARLY_PRINTK=y
-CONFIG_ELF_CORE=y
-# CONFIG_EXT3_FS_POSIX_ACL is not set
-# CONFIG_EXT3_FS_SECURITY is not set
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_FS_MBCACHE=m
-CONFIG_FS_POSIX_ACL=y
-CONFIG_GENERIC_ACL=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_GENERIC_FIND_NEXT_BIT=y
-CONFIG_GENERIC_GPIO=y
-# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set
-CONFIG_HAS_DMA=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAVE_IDE=y
-# CONFIG_HAVE_KPROBES is not set
-# CONFIG_HAVE_KRETPROBES is not set
-CONFIG_HAVE_OPROFILE=y
-CONFIG_HID=m
-CONFIG_HID_SUPPORT=y
-CONFIG_HW_HAS_PCI=y
-CONFIG_HW_RANDOM=y
-CONFIG_HZ=250
-# CONFIG_HZ_100 is not set
-CONFIG_HZ_250=y
-# CONFIG_I2C is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IDE is not set
-CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_INOTIFY=y
-CONFIG_INOTIFY_USER=y
-CONFIG_INPUT=m
-# CONFIG_INPUT_EVDEV is not set
-CONFIG_IPV6_MIP6=m
-CONFIG_IPV6_PRIVACY=y
-CONFIG_IPV6_ROUTE_INFO=y
-CONFIG_IPV6_TUNNEL=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IRQ_CPU=y
-# CONFIG_JOLIET is not set
-CONFIG_LEDS_ADM5120=m
-# CONFIG_LEDS_ADM5120_DIAG is not set
-# CONFIG_LEDS_ADM5120_EXPERIMENTAL is not set
-# CONFIG_LEDS_ALIX is not set
-CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_TRIGGER_ADM5120_SWITCH=m
-CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=256
-# CONFIG_LEMOTE_FULONG is not set
-CONFIG_LZO_COMPRESS=m
-CONFIG_LZO_DECOMPRESS=m
-# CONFIG_MACH_ALCHEMY is not set
-# CONFIG_MACH_DECSTATION is not set
-# CONFIG_MACH_JAZZ is not set
-# CONFIG_MACH_VR41XX is not set
-# CONFIG_MEMSTICK is not set
-CONFIG_MII=m
-# CONFIG_MINIX_FS is not set
-CONFIG_MIPS=y
-CONFIG_MIPS_ADM5120=y
-CONFIG_MIPS_ADM5120_ENET=y
-# CONFIG_MIPS_ATLAS is not set
-# CONFIG_MIPS_COBALT is not set
-CONFIG_MIPS_L1_CACHE_SHIFT=5
-# CONFIG_MIPS_MALTA is not set
-CONFIG_MIPS_MT_DISABLED=y
-# CONFIG_MIPS_MT_SMP is not set
-# CONFIG_MIPS_MT_SMTC is not set
-# CONFIG_MIPS_SEAD is not set
-# CONFIG_MIPS_SIM is not set
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_MTD=y
-# CONFIG_MTD_ABSENT is not set
-CONFIG_MTD_ADM5120=y
-# CONFIG_MTD_ALAUDA is not set
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
-# CONFIG_MTD_BLOCK2MTD is not set
-CONFIG_MTD_CFI=y
-# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_CFI_FIXUP_MACRONIX_BOOTLOC=y
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-# CONFIG_MTD_CFI_INTELEXT is not set
-# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=y
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_COMPLEX_MAPPINGS=y
-# CONFIG_MTD_CONCAT is not set
-# CONFIG_MTD_DEBUG is not set
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-CONFIG_MTD_GEN_PROBE=y
-CONFIG_MTD_JEDECPROBE=y
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MTDRAM is not set
-CONFIG_MTD_MYLOADER_PARTS=y
-CONFIG_MTD_NAND=y
-# CONFIG_MTD_NAND_CAFE is not set
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_ECC_SMC is not set
-CONFIG_MTD_NAND_IDS=y
-# CONFIG_MTD_NAND_MUSEUM_IDS is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
-CONFIG_MTD_NAND_PLATFORM=y
-# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-# CONFIG_MTD_ONENAND is not set
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_PCI is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_PHYSMAP is not set
-# CONFIG_MTD_PLATRAM is not set
-# CONFIG_MTD_PMC551 is not set
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_SLRAM is not set
-CONFIG_MTD_TRXSPLIT=y
-# CONFIG_NETFILTER_XT_TARGET_TARPIT is not set
-# CONFIG_NET_PCI is not set
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_NET_VENDOR_3COM is not set
-# CONFIG_NO_IOPORT is not set
-# CONFIG_PAGE_SIZE_16KB is not set
-CONFIG_PAGE_SIZE_4KB=y
-# CONFIG_PAGE_SIZE_64KB is not set
-# CONFIG_PAGE_SIZE_8KB is not set
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_PCI=y
-# CONFIG_PCIPCWATCHDOG is not set
-CONFIG_PCI_ADM5120=y
-CONFIG_PCI_DISABLE_COMMON_QUIRKS=y
-CONFIG_PCI_DOMAINS=y
-# CONFIG_PMC_MSP is not set
-# CONFIG_PMC_YOSEMITE is not set
-# CONFIG_PNX8550_JBS is not set
-# CONFIG_PNX8550_STB810 is not set
-# CONFIG_RTC is not set
-CONFIG_RTC_LIB=y
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
-CONFIG_SCSI_WAIT_SCAN=m
-# CONFIG_SERIAL_8250 is not set
-CONFIG_SERIAL_AMBA_PL010=y
-CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
-CONFIG_SERIAL_AMBA_PL010_NUMPORTS=2
-CONFIG_SERIAL_AMBA_PL010_PORTNAME="ttyS"
-# CONFIG_SERIAL_AMBA_PL011 is not set
-CONFIG_SERIO=y
-# CONFIG_SERIO_AMBAKMI is not set
-# CONFIG_SERIO_I8042 is not set
-# CONFIG_SERIO_LIBPS2 is not set
-# CONFIG_SERIO_PCIPS2 is not set
-# CONFIG_SERIO_RAW is not set
-CONFIG_SERIO_SERPORT=y
-# CONFIG_SGI_IP22 is not set
-# CONFIG_SGI_IP27 is not set
-# CONFIG_SGI_IP28 is not set
-# CONFIG_SGI_IP32 is not set
-# CONFIG_SIBYTE_BIGSUR is not set
-# CONFIG_SIBYTE_CARMEL is not set
-# CONFIG_SIBYTE_CRHINE is not set
-# CONFIG_SIBYTE_CRHONE is not set
-# CONFIG_SIBYTE_LITTLESUR is not set
-# CONFIG_SIBYTE_RHONE is not set
-# CONFIG_SIBYTE_SENTOSA is not set
-# CONFIG_SIBYTE_SWARM is not set
-CONFIG_SLABINFO=y
-CONFIG_SOFT_WATCHDOG=m
-# CONFIG_SPARSEMEM_STATIC is not set
-# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
-CONFIG_SSB_POSSIBLE=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_SYS_HAS_CPU_MIPS32_R1=y
-CONFIG_SYS_HAS_EARLY_PRINTK=y
-CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
-CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
-CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
-CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
-# CONFIG_THERMAL is not set
-CONFIG_TICK_ONESHOT=y
-CONFIG_TMPFS_POSIX_ACL=y
-# CONFIG_TOSHIBA_JMR3927 is not set
-# CONFIG_TOSHIBA_RBTX4927 is not set
-# CONFIG_TOSHIBA_RBTX4938 is not set
-CONFIG_TRAD_SIGNALS=y
-CONFIG_USB=m
-# CONFIG_USBPCWATCHDOG is not set
-CONFIG_USB_ADM5120_HCD=m
-CONFIG_USB_DEBUG=y
-CONFIG_USB_EHCI_HCD=m
-# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
-# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
-CONFIG_USB_OHCI_HCD=m
-# CONFIG_USB_R8A66597_HCD is not set
-# CONFIG_USB_UHCI_HCD is not set
-# CONFIG_VGASTATE is not set
-CONFIG_VIDEO_V4L1=y
-CONFIG_VIDEO_V4L2_COMMON=m
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_YAFFS_9BYTE_TAGS=y
-# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set
-CONFIG_YAFFS_AUTO_YAFFS2=y
-CONFIG_YAFFS_CHECKPOINT_RESERVED_BLOCKS=0
-# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set
-# CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set
-CONFIG_YAFFS_FS=y
-CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
-CONFIG_YAFFS_YAFFS1=y
-CONFIG_YAFFS_YAFFS2=y
-CONFIG_ZONE_DMA_FLAG=0
diff --git a/target/linux/adm5120/router_le/config-default b/target/linux/adm5120/router_le/config-default
index cf4044a5d..25ca729b1 100644
--- a/target/linux/adm5120/router_le/config-default
+++ b/target/linux/adm5120/router_le/config-default
@@ -7,6 +7,7 @@ CONFIG_ADM5120_WDT=y
 CONFIG_ARCH_POPULATES_NODE_MAP=y
 # CONFIG_ARCH_SUPPORTS_MSI is not set
 CONFIG_ARCH_SUPPORTS_OPROFILE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_ARM_AMBA=y
 CONFIG_BASE_SMALL=0
 CONFIG_BAYCOM_SER_FDX=m
@@ -20,6 +21,7 @@ CONFIG_CIFS_EXPERIMENTAL=y
 CONFIG_CIFS_STATS2=y
 CONFIG_CIFS_WEAK_PW_HASH=y
 CONFIG_CIFS_XATTR=y
+CONFIG_CLASSIC_RCU=y
 CONFIG_CMDLINE="console=ttyS0,115200 rootfstype=squashfs,yaffs2,jffs2 init=/etc/preinit"
 # CONFIG_CPU_BIG_ENDIAN is not set
 CONFIG_CPU_HAS_LLSC=y
@@ -50,11 +52,15 @@ CONFIG_CPU_SUPPORTS_HIGHMEM=y
 # CONFIG_CPU_TX39XX is not set
 # CONFIG_CPU_TX49XX is not set
 # CONFIG_CPU_VR41XX is not set
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_GF128MUL=m
 CONFIG_CSRC_R4K=y
 CONFIG_DEVPORT=y
 # CONFIG_DM9000 is not set
 CONFIG_DMA_NEED_PCI_MAP_STATE=y
 CONFIG_DMA_NONCOHERENT=y
+# CONFIG_E1000E_ENABLED is not set
 CONFIG_EARLY_PRINTK=y
 CONFIG_ELF_CORE=y
 # CONFIG_EXT3_FS_POSIX_ACL is not set
@@ -72,6 +78,10 @@ CONFIG_GENERIC_GPIO=y
 CONFIG_HAS_DMA=y
 CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT=y
+CONFIG_HAVE_IDE=y
+# CONFIG_HAVE_KPROBES is not set
+# CONFIG_HAVE_KRETPROBES is not set
+CONFIG_HAVE_OPROFILE=y
 CONFIG_HID=m
 CONFIG_HID_SUPPORT=y
 CONFIG_HW_HAS_PCI=y
@@ -101,15 +111,19 @@ CONFIG_IRQ_CPU=y
 CONFIG_LEDS_ADM5120=m
 # CONFIG_LEDS_ADM5120_DIAG is not set
 # CONFIG_LEDS_ADM5120_EXPERIMENTAL is not set
+# CONFIG_LEDS_ALIX is not set
 CONFIG_LEDS_GPIO=m
 CONFIG_LEDS_TRIGGER_ADM5120_SWITCH=m
 CONFIG_LEGACY_PTYS=y
 CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_LEMOTE_FULONG is not set
+CONFIG_LZO_COMPRESS=m
+CONFIG_LZO_DECOMPRESS=m
 # CONFIG_MACH_ALCHEMY is not set
 # CONFIG_MACH_DECSTATION is not set
 # CONFIG_MACH_JAZZ is not set
 # CONFIG_MACH_VR41XX is not set
+# CONFIG_MEMSTICK is not set
 CONFIG_MII=m
 # CONFIG_MINIX_FS is not set
 CONFIG_MIPS=y
@@ -221,13 +235,13 @@ CONFIG_SERIO=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SGI_IP22 is not set
 # CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP28 is not set
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_BIGSUR is not set
 # CONFIG_SIBYTE_CARMEL is not set
 # CONFIG_SIBYTE_CRHINE is not set
 # CONFIG_SIBYTE_CRHONE is not set
 # CONFIG_SIBYTE_LITTLESUR is not set
-# CONFIG_SIBYTE_PTSWARM is not set
 # CONFIG_SIBYTE_RHONE is not set
 # CONFIG_SIBYTE_SENTOSA is not set
 # CONFIG_SIBYTE_SWARM is not set
@@ -243,6 +257,7 @@ CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
 CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
 CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
 CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
+# CONFIG_THERMAL is not set
 CONFIG_TICK_ONESHOT=y
 CONFIG_TMPFS_POSIX_ACL=y
 # CONFIG_TOSHIBA_JMR3927 is not set
@@ -252,26 +267,16 @@ CONFIG_TRAD_SIGNALS=y
 CONFIG_USB=m
 # CONFIG_USBPCWATCHDOG is not set
 CONFIG_USB_ADM5120_HCD=m
-# CONFIG_USB_ALI_M5632 is not set
-# CONFIG_USB_AN2720 is not set
-# CONFIG_USB_CATC is not set
 CONFIG_USB_DEBUG=y
 CONFIG_USB_EHCI_HCD=m
-# CONFIG_USB_KAWETH is not set
-# CONFIG_USB_NET_DM9601 is not set
-# CONFIG_USB_NET_GL620A is not set
-# CONFIG_USB_NET_MCS7830 is not set
-# CONFIG_USB_NET_PLUSB is not set
-# CONFIG_USB_NET_RNDIS_HOST is not set
 # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
 # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
 CONFIG_USB_OHCI_HCD=m
-# CONFIG_USB_PEGASUS is not set
-# CONFIG_USB_SERIAL is not set
+# CONFIG_USB_R8A66597_HCD is not set
 # CONFIG_USB_UHCI_HCD is not set
-# CONFIG_USER_NS is not set
 # CONFIG_VGASTATE is not set
 CONFIG_VIDEO_V4L1=y
+CONFIG_VIDEO_V4L2_COMMON=m
 CONFIG_VM_EVENT_COUNTERS=y
 CONFIG_YAFFS_9BYTE_TAGS=y
 # CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set
@@ -283,5 +288,4 @@ CONFIG_YAFFS_FS=y
 CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
 CONFIG_YAFFS_YAFFS1=y
 CONFIG_YAFFS_YAFFS2=y
-# CONFIG_ZD1211RW is not set
 CONFIG_ZONE_DMA_FLAG=0
-- 
cgit v1.2.3