aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatias Bjørling2015-11-16 15:34:39 +0100
committerJens Axboe2015-11-16 15:20:27 -0700
commit12be5edf68e785dd5dc8665db5a88152b49c1fe8 (patch)
tree56103392277eefac1b259421a9d2e2e73f7f94c1
parent36d5dbc694e0d1b1909506666d7c27b53f7f9674 (diff)
lightnvm: expose mccap in identify command
The mccap field is required for I/O command option support. It defines the following flash access modes: * SLC mode * Erase/Program Suspension * Scramble On/Off * Encryption It is slotted in between mpos and cpar, changing the offset for cpar as well. Signed-off-by: Matias Bjørling <m@bjorling.me> Signed-off-by: Jens Axboe <axboe@fb.com>
-rw-r--r--drivers/nvme/host/lightnvm.c4
-rw-r--r--include/linux/lightnvm.h1
2 files changed, 4 insertions, 1 deletions
diff --git a/drivers/nvme/host/lightnvm.c b/drivers/nvme/host/lightnvm.c
index 60687ed68b5d..52b311cf694c 100644
--- a/drivers/nvme/host/lightnvm.c
+++ b/drivers/nvme/host/lightnvm.c
@@ -169,8 +169,9 @@ struct nvme_nvm_id_group {
__le32 tbet;
__le32 tbem;
__le32 mpos;
+ __le32 mccap;
__le16 cpar;
- __u8 reserved[910];
+ __u8 reserved[906];
} __packed;
struct nvme_nvm_addr_format {
@@ -265,6 +266,7 @@ static int init_grps(struct nvm_id *nvm_id, struct nvme_nvm_id *nvme_nvm_id)
dst->tbet = le32_to_cpu(src->tbet);
dst->tbem = le32_to_cpu(src->tbem);
dst->mpos = le32_to_cpu(src->mpos);
+ dst->mccap = le32_to_cpu(src->mccap);
dst->cpar = le16_to_cpu(src->cpar);
}
diff --git a/include/linux/lightnvm.h b/include/linux/lightnvm.h
index 9b3dc1bc9296..2572856e2a89 100644
--- a/include/linux/lightnvm.h
+++ b/include/linux/lightnvm.h
@@ -74,6 +74,7 @@ struct nvm_id_group {
u32 tbet;
u32 tbem;
u32 mpos;
+ u32 mccap;
u16 cpar;
u8 res[913];
} __packed;