aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEzequiel Garcia <ezequiel@vanguardiasur.com.ar>2018-01-12 15:30:55 -0300
committerMichal Simek <michal.simek@xilinx.com>2018-04-23 13:15:27 +0200
commit07c5cbbd1e6573e169687da873db37503a1f8b60 (patch)
tree8150950c1b09f460d60df353b2e5e58f0295dfdc
parent275d80a4c2fb63890f3f4c16b7ad481064e650a0 (diff)
downloadu-boot-07c5cbbd1e6573e169687da873db37503a1f8b60.zip
u-boot-07c5cbbd1e6573e169687da873db37503a1f8b60.tar.gz
u-boot-07c5cbbd1e6573e169687da873db37503a1f8b60.tar.bz2
nand: zynq: Fix driver initialization
This driver is currently broken, refusing to initialize properly. The reason is that get_nand_dev_by_index() was being called before nand_register(), thus returning a pointer into uninitialized memory. In other words, the struct mtd_info used by the driver is total junk. Fix it by getting the correct struct mtd_info, via nand_to_mtd() on the driver's struct nand_chip. Tested on a custom board, where the CPU is halted without this patch. Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> Reviewed-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
-rw-r--r--drivers/mtd/nand/zynq_nand.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mtd/nand/zynq_nand.c b/drivers/mtd/nand/zynq_nand.c
index 6494196..9f6ff3d 100644
--- a/drivers/mtd/nand/zynq_nand.c
+++ b/drivers/mtd/nand/zynq_nand.c
@@ -1025,7 +1025,7 @@ int zynq_nand_init(struct nand_chip *nand_chip, int devnum)
}
xnand->nand_base = (void __iomem *)ZYNQ_NAND_BASEADDR;
- mtd = get_nand_dev_by_index(0);
+ mtd = nand_to_mtd(nand_chip);
nand_chip->priv = xnand;
mtd->priv = nand_chip;