[patch 1/4] mtd-nand: davinci: Correct 4-bit error correction

David Woodhouse dwmw2 at infradead.org
Mon Nov 30 06:38:04 EST 2009


On Tue, 2009-11-17 at 14:45 -0800, akpm at linux-foundation.org wrote:
> +       /*
> +        * ECC_STATE field reads 0x3 (Error correction complete) immediately
> +        * after setting the 4BITECC_ADD_CALC_START bit. So if you immediately
> +        * begin trying to poll for the state, you may fall right out of your
> +        * loop without any of the correction calculations having taken place.
> +        * The recommendation from the hardware team is to wait till ECC_STATE
> +        * reads less than 4, which means ECC HW has entered correction state.
> +        */
> +       do {
> +               ecc_state = (davinci_nand_readl(info,
> +                               NANDFSR_OFFSET) >> 8) & 0x0f;
> +               cpu_relax();
> +       } while (ecc_state < 4); 

Please can this have a timeout. Infinite loops waiting for hardware are
generally a bad idea.

-- 
David Woodhouse                            Open Source Technology Centre
David.Woodhouse at intel.com                              Intel Corporation




More information about the linux-mtd mailing list