From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Roese Date: Thu, 10 Apr 2014 13:00:04 +0200 Subject: [U-Boot] [PATCH v1 2/6] mtd: nand: omap_elm: use bch_type instead of nibble count to differentiate between BCH4/BCH8/BCH16 In-Reply-To: <1397122543-30074-3-git-send-email-pekon@ti.com> References: <1397122543-30074-1-git-send-email-pekon@ti.com> <1397122543-30074-3-git-send-email-pekon@ti.com> Message-ID: <534679B4.70701@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 > --- > 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