mtd: rawnand: cadence: change bad block marker size
authorPiotr Sroka <piotrs@cadence.com>
Mon, 10 Feb 2020 09:55:27 +0000 (10:55 +0100)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Wed, 11 Mar 2020 15:17:55 +0000 (16:17 +0100)
Increase bad block marker size from one byte to two bytes.
Bad block marker is handled by skip bytes feature of HPNFC.
Controller expects this value to be an even number.

Fixes: ec4ba01e894d ("mtd: rawnand: Add new Cadence NAND driver to MTD subsystem")
Cc: stable@vger.kernel.org
Signed-off-by: Piotr Sroka <piotrs@cadence.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/1581328530-29966-3-git-send-email-piotrs@cadence.com
drivers/mtd/nand/raw/cadence-nand-controller.c

index 2ebfd0934739f31f4e5c3c54995d32b66c764e4a..5c1bbb05ab51cf01e9048cbb155576fd351b4cf0 100644 (file)
@@ -2612,12 +2612,9 @@ int cadence_nand_attach_chip(struct nand_chip *chip)
        chip->options |= NAND_NO_SUBPAGE_WRITE;
 
        cdns_chip->bbm_offs = chip->badblockpos;
-       if (chip->options & NAND_BUSWIDTH_16) {
-               cdns_chip->bbm_offs &= ~0x01;
-               cdns_chip->bbm_len = 2;
-       } else {
-               cdns_chip->bbm_len = 1;
-       }
+       cdns_chip->bbm_offs &= ~0x01;
+       /* this value should be even number */
+       cdns_chip->bbm_len = 2;
 
        ret = nand_ecc_choose_conf(chip,
                                   &cdns_ctrl->ecc_caps,