Linux Broadcom NAND driver only disabled clock if no childs are initialized.
This section of the code seems to have been accidentally dropped when it was
imported in U-Boot.

Signed-off-by: Álvaro Fernández Rojas <[email protected]>
---
 drivers/mtd/nand/raw/brcmnand/brcmnand.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c 
b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
index 5232328e1e..7bdebf5869 100644
--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
@@ -2714,6 +2714,14 @@ int brcmnand_probe(struct udevice *dev, struct 
brcmnand_soc *soc)
        }
 #endif /* __UBOOT__ */
 
+       /* No chip-selects could initialize properly */
+       if (list_empty(&ctrl->host_list)) {
+               ret = -ENODEV;
+               goto err;
+       }
+
+       return 0;
+
 err:
 #ifndef __UBOOT__
        clk_disable_unprepare(ctrl->clk);
@@ -2722,7 +2730,6 @@ err:
                clk_disable(ctrl->clk);
 #endif /* __UBOOT__ */
        return ret;
-
 }
 EXPORT_SYMBOL_GPL(brcmnand_probe);
 
-- 
2.20.1

Reply via email to