[PATCH v2] mtd: gpmi: add a new DT property to use the datasheet's minimum required ECC

Huang Shijie b32955 at freescale.com
Tue Nov 5 01:19:49 EST 2013


于 2013年10月28日 11:05, Huang Shijie 写道:
> In default way, we use the ecc_strength/ecc_step size calculated by ourselves
> and use all the OOB area.
>
> This patch adds a new property : "fsl,use-minimum-ecc"
>
> If we enable it, we will firstly try to use the datasheet's minimum required
> ECC provided by the MTD layer (the ecc_strength_ds/ecc_step_ds fields
> in the nand_chip{}). So we may have free space in the OOB area by using the
> minimum ECC, and we may support JFFS2 with some SLC NANDs, such as Micron's
> SLC NAND.
>
> If we fail to use the minimum ECC, we will use the legacy method to calculate
> the ecc_strength and ecc_step size.
>
> Signed-off-by: Huang Shijie <b32955 at freescale.com>
> ---
> v1 --> v2:
> 	based on David's patch to fix the regression.
> ---
>  .../devicetree/bindings/mtd/gpmi-nand.txt          |    6 ++++++
>  drivers/mtd/nand/gpmi-nand/gpmi-nand.c             |    3 +++
>  2 files changed, 9 insertions(+), 0 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/mtd/gpmi-nand.txt b/Documentation/devicetree/bindings/mtd/gpmi-nand.txt
> index 551b2a1..4297795 100644
> --- a/Documentation/devicetree/bindings/mtd/gpmi-nand.txt
> +++ b/Documentation/devicetree/bindings/mtd/gpmi-nand.txt
> @@ -17,6 +17,12 @@ Required properties:
>  Optional properties:
>    - nand-on-flash-bbt: boolean to enable on flash bbt option if not
>                         present false
> +  - fsl,use-minimum-ecc: By enabling this boolean property, the gpmi will try
> +                       to use the datasheet's minimum required ECC provided by
> +                       the MTD layer (the ecc_strength_ds/ecc_step_ds fields
> +                       in the nand_chip{}). So we may have free space in the OOB
> +                       area by using the minimum ECC, and we may support JFFS2
> +                       with some SLC NANDs, such as Micron's SLC NAND.
>  
>  The device tree may optionally contain sub-nodes describing partitions of the
>  address space. See partition.txt for more detail.
> diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
> index 7ac2280..3ec55d0 100644
> --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
> +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
> @@ -352,6 +352,9 @@ static int legacy_set_geometry(struct gpmi_nand_data *this)
>  
>  int common_nfc_set_geometry(struct gpmi_nand_data *this)
>  {
> +	if (of_property_read_bool(this->dev->of_node, "fsl,use-minimum-ecc")
> +		&& set_geometry_by_ecc_info(this))
> +		return 0;
>  	return legacy_set_geometry(this);
>  }
>  
any comment about this patch?

thanks
Huang Shijie




More information about the linux-mtd mailing list