401-mtd-nor-support-mtd-name-from-device-tree.patch 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. From f32bc2aa01edcba2f2ed5db151cf183eac9ef919 Mon Sep 17 00:00:00 2001
  2. From: Abhimanyu Vishwakarma <[email protected]>
  3. Date: Sat, 25 Feb 2017 16:42:50 +0000
  4. Subject: mtd: nor: support mtd name from device tree
  5. Signed-off-by: Abhimanyu Vishwakarma <[email protected]>
  6. ---
  7. drivers/mtd/spi-nor/spi-nor.c | 8 +++++++-
  8. 1 file changed, 7 insertions(+), 1 deletion(-)
  9. --- a/drivers/mtd/spi-nor/core.c
  10. +++ b/drivers/mtd/spi-nor/core.c
  11. @@ -2942,12 +2942,20 @@ static void spi_nor_set_mtd_info(struct
  12. {
  13. struct mtd_info *mtd = &nor->mtd;
  14. struct device *dev = nor->dev;
  15. + struct device_node *np = spi_nor_get_flash_node(nor);
  16. + const char __maybe_unused *of_mtd_name = NULL;
  17. spi_nor_set_mtd_locking_ops(nor);
  18. spi_nor_set_mtd_otp_ops(nor);
  19. mtd->dev.parent = dev;
  20. if (!mtd->name)
  21. +#ifdef CONFIG_MTD_OF_PARTS
  22. + of_property_read_string(np, "linux,mtd-name", &of_mtd_name);
  23. +#endif
  24. + if (of_mtd_name)
  25. + mtd->name = of_mtd_name;
  26. + else if (!mtd->name)
  27. mtd->name = dev_name(dev);
  28. mtd->type = MTD_NORFLASH;
  29. mtd->flags = MTD_CAP_NORFLASH;
  30. --- a/drivers/mtd/mtdcore.c
  31. +++ b/drivers/mtd/mtdcore.c
  32. @@ -863,6 +863,17 @@ out_error:
  33. */
  34. static void mtd_set_dev_defaults(struct mtd_info *mtd)
  35. {
  36. +#ifdef CONFIG_MTD_OF_PARTS
  37. + const char __maybe_unused *of_mtd_name = NULL;
  38. + struct device_node *np;
  39. +
  40. + np = mtd_get_of_node(mtd);
  41. + if (np && !mtd->name) {
  42. + of_property_read_string(np, "linux,mtd-name", &of_mtd_name);
  43. + if (of_mtd_name)
  44. + mtd->name = of_mtd_name;
  45. + } else
  46. +#endif
  47. if (mtd->dev.parent) {
  48. if (!mtd->owner && mtd->dev.parent->driver)
  49. mtd->owner = mtd->dev.parent->driver->owner;