]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mtd: rawnand: cadence: change bad block marker size
authorPiotr Sroka <piotrs@cadence.com>
Mon, 10 Feb 2020 09:55:27 +0000 (10:55 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Apr 2020 14:12:07 +0000 (16:12 +0200)
commit 9bf1903bed7a2e84f5a8deedb38f7e0ac5e8bfc6 upstream.

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
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/mtd/nand/raw/cadence-nand-controller.c

index 10f4fd1b322d74f66746adada37260cb3365f349..ea5c90974dce6be65d03f254059eaa72f8ef62c6 100644 (file)
@@ -2603,12 +2603,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,