--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -947,6 +947,16 @@ static int __devinit m25p_probe(struct s
 					part_probes, &parts, 0);
 		}
 #endif
+
+#ifdef CONFIG_MTD_WRT160NL_PARTS
+		if (nr_parts <= 0) {
+			static const char *part_probes[]
+					= { "wrt160nl", NULL, };
+
+			nr_parts = parse_mtd_partitions(&flash->mtd,
+					part_probes, &parts, 0);
+		}
+#endif
 		if (nr_parts <= 0 && data && data->parts) {
 			parts = data->parts;
 			nr_parts = data->nr_parts;
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
@@ -181,6 +181,12 @@ config MTD_AR7_PARTS
 	---help---
 	  TI AR7 partitioning support
 
+config MTD_WRT160NL_PARTS
+	tristate "Linksys WRT160NL partitioning support"
+	depends on MTD_PARTITIONS && AR71XX_MACH_WRT160NL
+	---help---
+	   Linksys WRT160NL partitioning support
+
 config MTD_MYLOADER_PARTS
 	tristate "MyLoader partition parsing"
 	depends on MTD_PARTITIONS && (ADM5120 || ATHEROS_AR231X || ATHEROS_AR71XX)
--- a/drivers/mtd/Makefile
+++ b/drivers/mtd/Makefile
@@ -12,6 +12,7 @@ obj-$(CONFIG_MTD_REDBOOT_PARTS) += redbo
 obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
 obj-$(CONFIG_MTD_AFS_PARTS)	+= afs.o
 obj-$(CONFIG_MTD_AR7_PARTS)	+= ar7part.o
+obj-$(CONFIG_MTD_WRT160NL_PARTS) += wrt160nl_part.o
 obj-$(CONFIG_MTD_OF_PARTS)      += ofpart.o
 obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o