summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatias Bjørling <m@bjorling.me>2015-11-16 14:34:41 (GMT)
committerJens Axboe <axboe@fb.com>2015-11-16 22:20:30 (GMT)
commit4264c980e3e9bb904b7f41dc9c64786cc5466bee (patch)
tree48cd613d42b56125c2363a9bdc5cde598089d78c
parent73387e7bed260c89628fc6a4e3632b45be9776b0 (diff)
downloadlinux-4264c980e3e9bb904b7f41dc9c64786cc5466bee.tar.xz
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 f659e60..0985a03 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)