[PATCH] mtd: rawnand: fsl_ifc: Read ECCSTAT0 and ECCSTAT1 registers for IFC 2.0
Boris Brezillon
boris.brezillon at bootlin.com
Fri Mar 23 00:50:37 PDT 2018
On Thu, 22 Mar 2018 01:08:10 +0530
Jagdish Gediya <jagdish.gediya at nxp.com> wrote:
> Due to missing information in Hardware manual, current
> implementation doesn't read ECCSTAT0 and ECCSTAT1 registers
> for IFC 2.0.
>
> Add support to read ECCSTAT0 and ECCSTAT1 registers during
> ecccheck for IFC 2.0.
>
> Fixes: 656441478ed5 ("mtd: nand: ifc: Fix location of eccstat
> registers for IFC V1.0")
> Cc: stable at vger.kernel.org # v3.18+
> Signed-off-by: Jagdish Gediya <jagdish.gediya at nxp.com>
> Reviewed-by: Prabhakar Kushwaha <prabhakar.kushwaha at nxp.com>
Applied.
Thanks,
Boris
> ---
> drivers/mtd/nand/fsl_ifc_nand.c | 6 +-----
> include/linux/fsl_ifc.h | 6 +-----
> 2 files changed, 2 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/mtd/nand/fsl_ifc_nand.c b/drivers/mtd/nand/fsl_ifc_nand.c
> index ed64759..1513298 100644
> --- a/drivers/mtd/nand/fsl_ifc_nand.c
> +++ b/drivers/mtd/nand/fsl_ifc_nand.c
> @@ -227,11 +227,7 @@ static void fsl_ifc_run_command(struct mtd_info *mtd)
> int sector_end = sector_start + chip->ecc.steps - 1;
> __be32 *eccstat_regs;
>
> - if (ctrl->version >= FSL_IFC_VERSION_2_0_0)
> - eccstat_regs = ifc->ifc_nand.v2_nand_eccstat;
> - else
> - eccstat_regs = ifc->ifc_nand.v1_nand_eccstat;
> -
> + eccstat_regs = ifc->ifc_nand.nand_eccstat;
> eccstat = ifc_in32(&eccstat_regs[sector_start / 4]);
>
> for (i = sector_start; i <= sector_end; i++) {
> diff --git a/include/linux/fsl_ifc.h b/include/linux/fsl_ifc.h
> index c332f0a..3fdfede 100644
> --- a/include/linux/fsl_ifc.h
> +++ b/include/linux/fsl_ifc.h
> @@ -734,11 +734,7 @@ struct fsl_ifc_nand {
> u32 res19[0x10];
> __be32 nand_fsr;
> u32 res20;
> - /* The V1 nand_eccstat is actually 4 words that overlaps the
> - * V2 nand_eccstat.
> - */
> - __be32 v1_nand_eccstat[2];
> - __be32 v2_nand_eccstat[6];
> + __be32 nand_eccstat[8];
> u32 res21[0x1c];
> __be32 nanndcr;
> u32 res22[0x2];
--
Boris Brezillon, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
More information about the linux-mtd
mailing list