[PATCH] MTD: fix s3c2410 error correction
Jörn Engel
joern at logfs.org
Tue Nov 6 13:11:22 EST 2007
On Tue, 6 November 2007 09:09:00 -0800, Matt Reimer wrote:
>
> ping
Ben doesn't seem to comment on this, so I will. And I must say, I don't
like the function either before or after your patch.
1. In principle this is just the bog-standard 1-bit error correction
code everyone and his dog is using.
2. The original version of this function is subtly different from
nand_correct_data(). 12 of the constants are off-by-one. But no
explanation why.
3. After your patch the bit-position constants are back to original, the
0x54 remains 0x55, half the byte-position constants are back to
original and the other half that were identical are off-by-one now.
Still no explanation why.
So my first question is not whether your patch is correct or not, but
what makes s3c2410 so different from all the other bog-standard ecc
schemes?
Side note:
The last conditional in both functions,
if ((diff0 & ~(1<<fls(diff0))) == 0)
can be replaced by is_power_of_2().
Jörn
--
Happiness isn't having what you want, it's wanting what you have.
-- unknown
More information about the linux-mtd
mailing list