Commit 779c9c05 authored by Boris Brezillon's avatar Boris Brezillon Committed by Jagan Teki

mtd: Parse mtdparts/mtdids again when the MTD list has been updated

Updates to the MTD device list should trigger a new parsing of the
mtdids/mtdparts vars even if those vars haven't changed.

Fixes: 5db66b3a ("cmd: mtd: add 'mtd' command")
Signed-off-by: default avatarBoris Brezillon <boris.brezillon@bootlin.com>
Tested-by: Heiko Schocher's avatarHeiko Schocher <hs@denx.de>
parent 4c47fd0b
......@@ -161,9 +161,13 @@ int mtd_probe_devices(void)
mtd_probe_uclass_mtd_devs();
/* Check if mtdparts/mtdids changed since last call, otherwise: exit */
/*
* Check if mtdparts/mtdids changed or if the MTD dev list was updated
* since last call, otherwise: exit
*/
if ((!mtdparts && !old_mtdparts && !mtdids && !old_mtdids) ||
(mtdparts && old_mtdparts && mtdids && old_mtdids &&
!mtd_dev_list_updated() &&
!strcmp(mtdparts, old_mtdparts) &&
!strcmp(mtdids, old_mtdids)))
return 0;
......@@ -201,6 +205,12 @@ int mtd_probe_devices(void)
}
}
/*
* Call mtd_dev_list_updated() to clear updates generated by our own
* parts removal loop.
*/
mtd_dev_list_updated();
/* If either mtdparts or mtdids is empty, then exit */
if (!mtdparts || !mtdids)
return 0;
......@@ -281,6 +291,12 @@ int mtd_probe_devices(void)
put_mtd_device(mtd);
}
/*
* Call mtd_dev_list_updated() to clear updates generated by our own
* parts registration loop.
*/
mtd_dev_list_updated();
return 0;
}
#else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment