On 31.08.2018 16:57, Miquel Raynal wrote:
Current implementation of mtdparts command errors out if the desired MTD
device is not found. Fallback to the new probe function in this case
before erroring out.

This will the save the user the need to call something like 'mtd list'
before mtdparts.

Signed-off-by: Miquel Raynal <miquel.ray...@bootlin.com>
Acked-by: Jagan Teki <ja...@openedev.com>
---
  cmd/mtdparts.c | 16 +++++++++++++---
  1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/cmd/mtdparts.c b/cmd/mtdparts.c
index f7ed1a0779..a1102c3fc5 100644
--- a/cmd/mtdparts.c
+++ b/cmd/mtdparts.c
@@ -79,6 +79,10 @@
  #include <linux/err.h>
  #include <linux/mtd/mtd.h>
+#if defined(CONFIG_MTD)
+#include <mtd.h>
+#endif
+
  #if defined(CONFIG_CMD_NAND)
  #include <linux/mtd/rawnand.h>
  #include <nand.h>
@@ -307,9 +311,15 @@ static int get_mtd_info(u8 type, u8 num, struct mtd_info 
**mtd)
sprintf(mtd_dev, "%s%d", MTD_DEV_TYPE(type), num);
        *mtd = get_mtd_device_nm(mtd_dev);
-       if (IS_ERR(*mtd)) {
-               printf("Device %s not found!\n", mtd_dev);
-               return 1;
+       if (IS_ERR_OR_NULL(*mtd)) {
+#ifdef CONFIG_MTD
+               mtd_probe_devices();
+               *mtd = get_mtd_device_nm(mtd_dev);
+#endif
+               if (IS_ERR_OR_NULL(*mtd)) {
+                       printf("Device %s not found!\n", mtd_dev);
+                       return 1;
+               }
        }
        put_mtd_device(*mtd);

This is most likely the use case for CMD_MTD without MTD, correct?

Reviewed-by: Stefan Roese <s...@denx.de>

Thanks,
Stefan
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to