diff options
author | Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> | 2018-01-12 21:30:55 +0300 |
---|---|---|
committer | Michal Simek <michal.simek@xilinx.com> | 2018-04-23 14:15:27 +0300 |
commit | 07c5cbbd1e6573e169687da873db37503a1f8b60 (patch) | |
tree | 8150950c1b09f460d60df353b2e5e58f0295dfdc | |
parent | 275d80a4c2fb63890f3f4c16b7ad481064e650a0 (diff) | |
download | u-boot-07c5cbbd1e6573e169687da873db37503a1f8b60.tar.xz |
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.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mtd/nand/zynq_nand.c b/drivers/mtd/nand/zynq_nand.c index 6494196049..9f6ff3d045 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; |