Re: [PATCH] mtd: rawnand: fsl_ifc: Read ECCSTAT0 and ECCSTAT1 registers for IFC 2.0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 22 Mar 2018 01:08:10 +0530
Jagdish Gediya <jagdish.gediya@xxxxxxx> 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@xxxxxxxxxxxxxxx # v3.18+
> Signed-off-by: Jagdish Gediya <jagdish.gediya@xxxxxxx>
> Reviewed-by: Prabhakar Kushwaha <prabhakar.kushwaha@xxxxxxx>

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



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]