--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -1017,7 +1017,9 @@ static int __devinit m25p_probe(struct s
 	/* partitions should match sector boundaries; and it may be good to
 	 * use readonly partitions for writeprotected sectors (BP2..BP0).
 	 */
-	return mtd_device_parse_register(&flash->mtd, NULL, &ppdata,
+	return mtd_device_parse_register(&flash->mtd,
+			data ? data->part_probes : NULL,
+			&ppdata,
 			data ? data->parts : NULL,
 			data ? data->nr_parts : 0);
 }
--- a/include/linux/spi/flash.h
+++ b/include/linux/spi/flash.h
@@ -24,6 +24,7 @@ struct flash_platform_data {
 	unsigned int	nr_parts;
 
 	char		*type;
+	const char	**part_probes;
 
 	size_t		max_read_len;
 	/* we'll likely add more ... use JEDEC IDs, etc */
