From c26ef8231fae4aac76b9b2dd8cb2ed12361d6624 Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Wed, 27 Feb 2013 11:01:17 +0100 Subject: mtd: Add parameter to allow erasing bad blocks While erasing bad blocks is a potentially dangerous operation it is sometimes needed during development or when some foreign code has touched the flash. This patch adds a device parameter 'erasebad' to allow erasing bad blocks. Since this is not wanted during production this is behind a Kconfig option. Signed-off-by: Sascha Hauer --- drivers/mtd/mtdraw.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'drivers/mtd/mtdraw.c') diff --git a/drivers/mtd/mtdraw.c b/drivers/mtd/mtdraw.c index 5aaa0172da..384104ec27 100644 --- a/drivers/mtd/mtdraw.c +++ b/drivers/mtd/mtdraw.c @@ -241,7 +241,11 @@ static int mtdraw_erase(struct cdev *cdev, size_t count, loff_t _offset) while (count > 0) { debug("erase %d %d\n", erase.addr, erase.len); - ret = mtd_block_isbad(mtd, erase.addr); + if (!mtd->allow_erasebad) + ret = mtd_block_isbad(mtd, erase.addr); + else + ret = 0; + if (ret > 0) { printf("Skipping bad block at 0x%08x\n", erase.addr); } else { -- cgit v1.2.3