[U-Boot] [PATCH v1 2/6] mtd: nand: omap_elm: use bch_type instead of nibble count to differentiate between BCH4/BCH8/BCH16
Stefan Roese
sr at denx.de
Thu Apr 10 13:00:04 CEST 2014
On 10.04.2014 11:35, Pekon Gupta wrote:
> ELM hardware engine support ECC error detection for multiple ECC strengths like
> +------+------------------------+
> |Type | ECC syndrome length |
> +------+------------------------+
> |BCH4 | 6.5 bytes = 13 nibbles |
> |BCH8 | 13 byte = 26 nibbles |
> |BCH16 | 26 bytes = 52 nibbles |
> +------+------------------------+
>
> Current implementation of omap_elm driver uses ECC syndrom length (in 'nibbles')
> to differentiate between BCH4/BCH8/BCH16. This patch replaces it with 'bch_type'
>
> Signed-off-by: Pekon Gupta <pekon at ti.com>
> ---
> drivers/mtd/nand/omap_elm.c | 20 ++++++++------------
> drivers/mtd/nand/omap_gpmc.c | 10 ++--------
> include/linux/mtd/omap_elm.h | 2 +-
> 3 files changed, 11 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/mtd/nand/omap_elm.c b/drivers/mtd/nand/omap_elm.c
> index 4c65f3b..5b2172a 100644
> --- a/drivers/mtd/nand/omap_elm.c
> +++ b/drivers/mtd/nand/omap_elm.c
> @@ -24,14 +24,12 @@
> struct elm *elm_cfg;
>
> /**
> - * elm_load_syndromes - Load BCH syndromes based on nibble selection
> + * elm_load_syndromes - Load BCH syndromes based on bch_type selection
> * @syndrome: BCH syndrome
> - * @nibbles:
> + * @bch_type: BCH4/BCH8/BCH16
> * @poly: Syndrome Polynomial set to use
> - *
> - * Load BCH syndromes based on nibble selection
> */
> -static void elm_load_syndromes(u8 *syndrome, u32 nibbles, u8 poly)
> +static void elm_load_syndromes(u8 *syndrome, enum bch_level bch_type, u8 poly)
> {
> u32 *ptr;
> u32 val;
> @@ -47,8 +45,7 @@ static void elm_load_syndromes(u8 *syndrome, u32 nibbles, u8 poly)
> (syndrome[7] << 24);
> writel(val, ptr);
>
> - /* BCH 8-bit with 26 nibbles (4*8=32) */
> - if (nibbles > 13) {
> + if (bch_type == BCH_4_BIT || bch_type == BCH_8_BIT) {
Is this correct? Shouldn't this be:
+ if (bch_type == BCH_8_BIT || bch_type == BCH_16_BIT) {
instead?
Thanks,
Stefan
More information about the U-Boot
mailing list