From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Fri, 21 Oct 2016 19:55:06 +0200 From: Boris Brezillon To: Maxime Ripard Cc: Chen-Yu Tsai , Brian Norris , Richard Weinberger , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mtd@lists.infradead.org, Mylene Josserand , Thomas Petazzoni Subject: Re: [PATCH 1/8] mtd: nand: sunxi: fix support for 512bytes ECC chunks Message-ID: <20161021195506.10d32e81@bbrezillon> In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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); > } >