mtd: rawnand: mxc: Move the ECC engine initialization to the right place
authorFabio Estevam <festevam@gmail.com>
Fri, 16 Oct 2020 21:36:13 +0000 (18:36 -0300)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Mon, 26 Oct 2020 17:44:14 +0000 (18:44 +0100)
commit1b8d1070857da3c11307b3130eb4b05bee7d521d
tree5ecdea9dedb10c2c37a889b9215c863302022b58
parent3650b228f83adda7e5ee532e2b90429c03f7b9ec
mtd: rawnand: mxc: Move the ECC engine initialization to the right place

No ECC initialization should happen during the host controller probe.

In fact, we need the probe function to call nand_scan() in order to:

- identify the device, its capabilities and constraints (nand_scan_ident())
- configure the ECC engine accordingly (->attach_chip())
- scan its content and prepare the core (nand_scan_tail())

Moving these lines to mxcnd_attach_chip() fixes a regression caused by
a previous commit supposed to clarify these steps.

When moving the ECC initialization from probe() to attach(), get rid
of the pdata usage to determine the engine type and let the core decide
instead.

Tested on a imx27-pdk board.

Fixes: d7157ff49a5b ("mtd: rawnand: Use the ECC framework user input parsing bits")
Reported-by: Fabio Estevam <festevam@gmail.com>
Co-developed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Tested-by: Sascha Hauer <s.hauer@pengutronix.de>
Tested-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20201016213613.1450-1-festevam@gmail.com
drivers/mtd/nand/raw/mxc_nand.c