Hello, After a first proposal by Thomas Gleixner and then another proposal by Bean Huo (Micron), this is an attempt to mainline the fix for Micron's "shallow erase" issue. IMHO this is a "pretty way", not so invasive, with a limited performance penalty. It has only be *compile-tested* and this is just to know if the approach is fine or not, then I will optimize, maybe rewrite a bit and forcibly (ask to) test it. Changes in v2 (v1 was an RFC): * Fixed the written pattern: should have been 0x00 instead of 0xFF. * Removed files that I added in my commit by mistake. * Reworded a little bit the comment about writing only odd pages. * I am still waiting for Bean to comment of the need to write main area vs OOB and also the need to write pages starting from 0 or starting from the middle of the bloc. Anyway if I do not get more information, and people agree (or even test it), I will merge this set. Miquel Raynal (3): mtd: rawnand: Add the nand_chip->erase hook mtd: rawnand: Add the nand_chip->write_oob hook mtd: rawnand: micron: Address the shallow erase issue drivers/mtd/nand/raw/internals.h | 2 + drivers/mtd/nand/raw/nand_base.c | 14 +++- drivers/mtd/nand/raw/nand_micron.c | 121 +++++++++++++++++++++++++++++ include/linux/mtd/rawnand.h | 6 ++ 4 files changed, 142 insertions(+), 1 deletion(-) -- 2.20.1 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/