bcm2835-mmc: Honor return value of mmc_of_parse()
authorLukas Wunner <lukas@wunner.de>
Sat, 14 Jan 2023 09:03:46 +0000 (10:03 +0100)
committerPhil Elwell <phil@raspberrypi.com>
Sat, 14 Jan 2023 16:39:00 +0000 (16:39 +0000)
bcm2835_mmc_probe() ignores errors returned by mmc_of_parse() and in
particular ignores -EPROBE_DEFER, which may be returned if the power
sequencing driver configured in the devicetree is compiled as a module.

The user-visible result is that access to the SDIO device fails because
its power sequencing requirements have not been observed.  Fix it.

Signed-off-by: Lukas Wunner <lukas@wunner.de>
drivers/mmc/host/bcm2835-mmc.c

index cdc1318..bb6bbfb 100644 (file)
@@ -1475,7 +1475,9 @@ static int bcm2835_mmc_probe(struct platform_device *pdev)
        }
 
        if (node) {
-               mmc_of_parse(mmc);
+               ret = mmc_of_parse(mmc);
+               if (ret)
+                       goto err;
 
                /* Read any custom properties */
                of_property_read_u32(node,