diff options
author | Matias Bjørling <m@bjorling.me> | 2015-11-16 15:34:41 +0100 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2015-11-16 23:20:30 +0100 |
commit | 4264c980e3e9bb904b7f41dc9c64786cc5466bee (patch) | |
tree | 48cd613d42b56125c2363a9bdc5cde598089d78c | |
parent | lightnvm: remove unused attrs in nvm_id structs (diff) | |
download | linux-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.c | 10 |
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) |