aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ath79/patches-5.15/401-mtd-nor-support-mtd-name-from-device-tree.patch
blob: 92f5116a8e0c777027dc87b41f819d16a7cd4c92 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
From f32bc2aa01edcba2f2ed5db151cf183eac9ef919 Mon Sep 17 00:00:00 2001
From: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
Date: Sat, 25 Feb 2017 16:42:50 +0000
Subject: mtd: nor: support mtd name from device tree

Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
---
 drivers/mtd/spi-nor/spi-nor.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
@@ -3095,6 +3095,7 @@ int spi_nor_scan(struct spi_nor *nor, co
 	struct device *dev = nor->dev;
 	struct mtd_info *mtd = &nor->mtd;
 	struct device_node *np = spi_nor_get_flash_node(nor);
+	const char __maybe_unused *of_mtd_name = NULL;
 	int ret;
 	int i;
 
@@ -3149,7 +3150,12 @@ int spi_nor_scan(struct spi_nor *nor, co
 	if (ret)
 		return ret;
 
-	if (!mtd->name)
+#ifdef CONFIG_MTD_OF_PARTS
+	of_property_read_string(np, "linux,mtd-name", &of_mtd_name);
+#endif
+	if (of_mtd_name)
+		mtd->name = of_mtd_name;
+	else if (!mtd->name)
 		mtd->name = dev_name(dev);
 	mtd->priv = nor;
 	mtd->type = MTD_NORFLASH;
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
@@ -851,6 +851,17 @@ out_error:
  */
 static void mtd_set_dev_defaults(struct mtd_info *mtd)
 {
+#ifdef CONFIG_MTD_OF_PARTS
+	const char __maybe_unused *of_mtd_name = NULL;
+	struct device_node *np;
+
+	np = mtd_get_of_node(mtd);
+	if (np && !mtd->name) {
+		of_property_read_string(np, "linux,mtd-name", &of_mtd_name);
+		if (of_mtd_name)
+			mtd->name = of_mtd_name;
+	} else
+#endif
 	if (mtd->dev.parent) {
 		if (!mtd->owner && mtd->dev.parent->driver)
 			mtd->owner = mtd->dev.parent->driver->owner;