From mboxrd@z Thu Jan 1 00:00:00 1970 From: boris.brezillon@free-electrons.com (Boris Brezillon) Date: Fri, 21 Oct 2016 19:55:06 +0200 Subject: [PATCH 1/8] mtd: nand: sunxi: fix support for 512bytes ECC chunks In-Reply-To: References: Message-ID: <20161021195506.10d32e81@bbrezillon> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Thu, 20 Oct 2016 10:12:42 +0200 Maxime Ripard wrote: > From: Boris Brezillon > > The driver is incorrectly assuming that the ECC block size is always 1k > which is not always true. > > Also take the other cases into account. > > Signed-off-by: Boris Brezillon > Signed-off-by: Maxime Ripard Applied. > --- > drivers/mtd/nand/sunxi_nand.c | 4 ++++ > 1 file changed, 4 insertions(+), 0 deletions(-) > > diff --git a/drivers/mtd/nand/sunxi_nand.c b/drivers/mtd/nand/sunxi_nand.c > index 8b8470c4e6d0..e40482a65de6 100644 > --- a/drivers/mtd/nand/sunxi_nand.c > +++ b/drivers/mtd/nand/sunxi_nand.c > @@ -145,6 +145,7 @@ > #define NFC_ECC_PIPELINE BIT(3) > #define NFC_ECC_EXCEPTION BIT(4) > #define NFC_ECC_BLOCK_SIZE_MSK BIT(5) > +#define NFC_ECC_BLOCK_512 BIT(5) > #define NFC_RANDOM_EN BIT(9) > #define NFC_RANDOM_DIRECTION BIT(10) > #define NFC_ECC_MODE_MSK GENMASK(15, 12) > @@ -817,6 +818,9 @@ static void sunxi_nfc_hw_ecc_enable(struct mtd_info *mtd) > ecc_ctl |= NFC_ECC_EN | NFC_ECC_MODE(data->mode) | NFC_ECC_EXCEPTION | > NFC_ECC_PIPELINE; > > + if (nand->ecc.size == 512) > + ecc_ctl |= NFC_ECC_BLOCK_512; > + > writel(ecc_ctl, nfc->regs + NFC_REG_ECC_CTL); > } >