[PATCH v2 3/3] mtd: nand: omap2: Support for hardware BCH error correction

Philip, Avinash avinashphilip at ti.com
Tue Dec 4 08:16:27 EST 2012


On Fri, Nov 30, 2012 at 17:58:00, Artem Bityutskiy wrote:
> On Wed, 2012-10-31 at 12:38 +0530, Philip, Avinash wrote:
> > +static int erased_sector_bitflips(u_char *data, u_char *oob,
> > +               struct omap_nand_info *info)
> > +{
> > +       int flip_bits = 0, i;
> > +
> > +       for (i = 0; i < info->nand.ecc.size; i++) {
> > +               flip_bits += hweight8(~data[i]);
> > +               if (flip_bits > info->nand.ecc.strength)
> > +                       return 0;
> > +       }
> > +
> > +       for (i = 0; i < info->nand.ecc.bytes - 1; i++) {
> > +               flip_bits += hweight8(~oob[i]);
> > +               if (flip_bits > info->nand.ecc.strength)
> > +                       return 0;
> > +       }
> 
> Why do you need the second for loop?

BCH ecc is self protected & can correct bit flips in ecc bytes.
So here checking bit flips in read_ecc. I will rename variable
"oob" to "read_ecc"

Thanks
Avinash

> 
> -- 
> Best Regards,
> Artem Bityutskiy
> 



More information about the linux-mtd mailing list