ath79: restore kernel 6.1 config files and patches
[openwrt/openwrt.git] / target / linux / ath79 / patches-6.1 / 400-mtd-nor-support-mtd-name-from-device-tree.patch
diff --git a/target/linux/ath79/patches-6.1/400-mtd-nor-support-mtd-name-from-device-tree.patch b/target/linux/ath79/patches-6.1/400-mtd-nor-support-mtd-name-from-device-tree.patch
new file mode 100644 (file)
index 0000000..ebb240d
--- /dev/null
@@ -0,0 +1,53 @@
+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
+@@ -2964,12 +2964,19 @@ static void spi_nor_set_mtd_info(struct
+ {
+       struct mtd_info *mtd = &nor->mtd;
+       struct device *dev = nor->dev;
++      struct device_node *np = spi_nor_get_flash_node(nor);
++      const char __maybe_unused *of_mtd_name = NULL;
+       spi_nor_set_mtd_locking_ops(nor);
+       spi_nor_set_mtd_otp_ops(nor);
+       mtd->dev.parent = dev;
+-      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->type = MTD_NORFLASH;
+       mtd->flags = MTD_CAP_NORFLASH;
+--- a/drivers/mtd/mtdcore.c
++++ b/drivers/mtd/mtdcore.c
+@@ -863,6 +863,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;