mtd: nand: gpmi: Use subpage reads only on suitable NAND chips
On some NAND chips the driver uses a ECC size that is not dividable by the number of chunks per page which means a single chunk cannot be read. Disable the subpage feature for these NANDs. This is quite unfortunate since the subpage feature really speeds up scanning NAND chips. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
22d7d604f1
commit
13ef2b2490
|
@ -1392,14 +1392,16 @@ static int mxs_nand_probe(struct device_d *dev)
|
||||||
nand->ecc.size = 512;
|
nand->ecc.size = 512;
|
||||||
nand->ecc.strength = 8;
|
nand->ecc.strength = 8;
|
||||||
|
|
||||||
nand->ecc.read_subpage = gpmi_ecc_read_subpage;
|
|
||||||
nand->options |= NAND_SUBPAGE_READ;
|
|
||||||
|
|
||||||
/* first scan to find the device and get the page size */
|
/* first scan to find the device and get the page size */
|
||||||
err = nand_scan_ident(mtd, 4, NULL);
|
err = nand_scan_ident(mtd, 4, NULL);
|
||||||
if (err)
|
if (err)
|
||||||
goto err2;
|
goto err2;
|
||||||
|
|
||||||
|
if ((13 * mxs_nand_get_ecc_strength(mtd->writesize, mtd->oobsize) % 8) == 0) {
|
||||||
|
nand->ecc.read_subpage = gpmi_ecc_read_subpage;
|
||||||
|
nand->options |= NAND_SUBPAGE_READ;
|
||||||
|
}
|
||||||
|
|
||||||
nand->options |= NAND_NO_SUBPAGE_WRITE;
|
nand->options |= NAND_NO_SUBPAGE_WRITE;
|
||||||
|
|
||||||
/* second phase scan */
|
/* second phase scan */
|
||||||
|
|
Loading…
Reference in New Issue