summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatias Bjørling <m@bjorling.me>2015-11-16 15:34:41 +0100
committerJens Axboe <axboe@fb.com>2015-11-16 23:20:30 +0100
commit4264c980e3e9bb904b7f41dc9c64786cc5466bee (patch)
tree48cd613d42b56125c2363a9bdc5cde598089d78c
parentlightnvm: remove unused attrs in nvm_id structs (diff)
downloadlinux-4264c980e3e9bb904b7f41dc9c64786cc5466bee.tar.xz
linux-4264c980e3e9bb904b7f41dc9c64786cc5466bee.zip
lightnvm: check for NAND flash and its type
Only NAND flash with SLC and MLC is supported. Make sure to not try to initialize TLC memory or other non-volatile memory types. Signed-off-by: Matias Bjørling <m@bjorling.me> Signed-off-by: Jens Axboe <axboe@fb.com>
-rw-r--r--drivers/lightnvm/core.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c
index f659e605a406..0985a032debc 100644
--- a/drivers/lightnvm/core.c
+++ b/drivers/lightnvm/core.c
@@ -185,6 +185,16 @@ static int nvm_core_init(struct nvm_dev *dev)
dev->plane_mode = NVM_PLANE_SINGLE;
dev->max_rq_size = dev->ops->max_phys_sect * dev->sec_size;
+ if (grp->mtype != 0) {
+ pr_err("nvm: memory type not supported\n");
+ return -EINVAL;
+ }
+
+ if (grp->fmtype != 0 && grp->fmtype != 1) {
+ pr_err("nvm: flash type not supported\n");
+ return -EINVAL;
+ }
+
if (grp->mpos & 0x020202)
dev->plane_mode = NVM_PLANE_DOUBLE;
if (grp->mpos & 0x040404)