mtd: partitions: redboot: seek fis-index-block in the right node
authorCorentin Labbe <clabbe@baylibre.com>
Thu, 20 May 2021 11:48:50 +0000 (11:48 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 14 Jul 2021 14:56:38 +0000 (16:56 +0200)
[ Upstream commit 237960880960863fb41888763d635b384cffb104 ]

fis-index-block is seeked in the master node and not in the partitions node.
For following binding and current usage, the driver need to check the
partitions subnode.

Fixes: c0e118c8a1a3 ("mtd: partitions: Add OF support to RedBoot partitions")
Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20210520114851.1274609-1-clabbe@baylibre.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/mtd/parsers/redboot.c

index 91146bd..3ccd636 100644 (file)
@@ -45,6 +45,7 @@ static inline int redboot_checksum(struct fis_image_desc *img)
 static void parse_redboot_of(struct mtd_info *master)
 {
        struct device_node *np;
+       struct device_node *npart;
        u32 dirblock;
        int ret;
 
@@ -52,7 +53,11 @@ static void parse_redboot_of(struct mtd_info *master)
        if (!np)
                return;
 
-       ret = of_property_read_u32(np, "fis-index-block", &dirblock);
+       npart = of_get_child_by_name(np, "partitions");
+       if (!npart)
+               return;
+
+       ret = of_property_read_u32(npart, "fis-index-block", &dirblock);
        if (ret)
                return;