فهرست منبع

mtd: st_spi_fsm: Convert ST SPI FSM (NOR) Flash driver to new DT partitions

The old API expected a "partitions" property provided a phandle to a
separate partitions node, which itself contained yet more nodes each
representing one partition. The new API rids the requirement for the
superfluous intermediary partitions node. This patch provides the
added information required for automatic parsing by the core.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Lee Jones 11 سال پیش
والد
کامیت
221cff13ca
1فایلهای تغییر یافته به همراه5 افزوده شده و 1 حذف شده
  1. 5 1
      drivers/mtd/devices/st_spi_fsm.c

+ 5 - 1
drivers/mtd/devices/st_spi_fsm.c

@@ -18,6 +18,7 @@
 #include <linux/platform_device.h>
 #include <linux/platform_device.h>
 #include <linux/mfd/syscon.h>
 #include <linux/mfd/syscon.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/mtd.h>
+#include <linux/mtd/partitions.h>
 #include <linux/sched.h>
 #include <linux/sched.h>
 #include <linux/delay.h>
 #include <linux/delay.h>
 #include <linux/io.h>
 #include <linux/io.h>
@@ -1997,6 +1998,7 @@ boot_device_fail:
 static int stfsm_probe(struct platform_device *pdev)
 static int stfsm_probe(struct platform_device *pdev)
 {
 {
 	struct device_node *np = pdev->dev.of_node;
 	struct device_node *np = pdev->dev.of_node;
+	struct mtd_part_parser_data ppdata;
 	struct flash_info *info;
 	struct flash_info *info;
 	struct resource *res;
 	struct resource *res;
 	struct stfsm *fsm;
 	struct stfsm *fsm;
@@ -2006,6 +2008,7 @@ static int stfsm_probe(struct platform_device *pdev)
 		dev_err(&pdev->dev, "No DT found\n");
 		dev_err(&pdev->dev, "No DT found\n");
 		return -EINVAL;
 		return -EINVAL;
 	}
 	}
+	ppdata.of_node = np;
 
 
 	fsm = devm_kzalloc(&pdev->dev, sizeof(*fsm), GFP_KERNEL);
 	fsm = devm_kzalloc(&pdev->dev, sizeof(*fsm), GFP_KERNEL);
 	if (!fsm)
 	if (!fsm)
@@ -2062,6 +2065,7 @@ static int stfsm_probe(struct platform_device *pdev)
 			return ret;
 			return ret;
 	}
 	}
 
 
+	fsm->mtd.name		= info->name;
 	fsm->mtd.dev.parent	= &pdev->dev;
 	fsm->mtd.dev.parent	= &pdev->dev;
 	fsm->mtd.type		= MTD_NORFLASH;
 	fsm->mtd.type		= MTD_NORFLASH;
 	fsm->mtd.writesize	= 4;
 	fsm->mtd.writesize	= 4;
@@ -2081,7 +2085,7 @@ static int stfsm_probe(struct platform_device *pdev)
 		(long long)fsm->mtd.size, (long long)(fsm->mtd.size >> 20),
 		(long long)fsm->mtd.size, (long long)(fsm->mtd.size >> 20),
 		fsm->mtd.erasesize, (fsm->mtd.erasesize >> 10));
 		fsm->mtd.erasesize, (fsm->mtd.erasesize >> 10));
 
 
-	return mtd_device_parse_register(&fsm->mtd, NULL, NULL, NULL, 0);
+	return mtd_device_parse_register(&fsm->mtd, NULL, &ppdata, NULL, 0);
 }
 }
 
 
 static int stfsm_remove(struct platform_device *pdev)
 static int stfsm_remove(struct platform_device *pdev)