diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2016-02-23 14:41:48 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2016-03-15 08:56:53 +0100 |
commit | 172af2a30c4fbd71087103e4cf9b6c9f585d8602 (patch) | |
tree | 1e5c8022adfcb2191064a50d155f9239311924e3 /drivers/mtd/core.c | |
parent | a0fa6e1d2b6ac59ecb0cf531fb3b37fab636e336 (diff) | |
download | barebox-172af2a30c4fbd71087103e4cf9b6c9f585d8602.tar.gz barebox-172af2a30c4fbd71087103e4cf9b6c9f585d8602.tar.xz |
mtd: Add support for marking blocks as good
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/mtd/core.c')
-rw-r--r-- | drivers/mtd/core.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/mtd/core.c b/drivers/mtd/core.c index 161c6ad874..3143b07cac 100644 --- a/drivers/mtd/core.c +++ b/drivers/mtd/core.c @@ -231,6 +231,10 @@ int mtd_ioctl(struct cdev *cdev, int request, void *buf) dev_dbg(cdev->dev, "MEMSETBADBLOCK: 0x%08llx\n", *offset); ret = mtd_block_markbad(mtd, *offset); break; + case MEMSETGOODBLOCK: + dev_dbg(cdev->dev, "MEMSETGOODBLOCK: 0x%08llx\n", *offset); + ret = mtd_block_markgood(mtd, *offset); + break; case MEMERASE: ret = mtd_op_erase(cdev, ei->length, ei->start + cdev->offset); break; @@ -320,6 +324,18 @@ int mtd_block_markbad(struct mtd_info *mtd, loff_t ofs) return ret; } +int mtd_block_markgood(struct mtd_info *mtd, loff_t ofs) +{ + int ret; + + if (mtd->block_markgood) + ret = mtd->block_markgood(mtd, ofs); + else + ret = -ENOSYS; + + return ret; +} + int mtd_read(struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen, u_char *buf) { |