]> git.baikalelectronics.ru Git - kernel.git/commit
mtd: fsmc: Newly erased page read algorithm implemented
authorVipin Kumar <vipin.kumar@st.com>
Wed, 7 Mar 2012 11:30:49 +0000 (17:00 +0530)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Mon, 26 Mar 2012 23:44:57 +0000 (00:44 +0100)
commit116fac86beebd8eeb92523eb37cfac0c0705c703
treecfc6ad1320393249630ad695c5ef620109006ac0
parent35978d948394b927de75f0a0ad6d5ba0e8e11704
mtd: fsmc: Newly erased page read algorithm implemented

A newly erased page contains ff in data as well as spare area. While reading an
erased page, the read out ecc from spare area does not match the ecc generated
by fsmc ecc hardware accelerator. This is because ecc of data ff ff is not ff
ff. This leads to errors when file system erases and reads back the pages to
ensure consistency.

This patch adds a software workaround to ensure that the ecc check is not
performed for erased pages. This problem is solved by checking the number of
bits (in 512 byte data + 13 byte ecc) which are 0. If these number of bits are
less than 8, the page is considered erased and correction algorithm is not tried
on that page

Signed-off-by: Vipin Kumar <vipin.kumar@st.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/nand/fsmc_nand.c