From: Akinobu Mita <akinobu.mita@gmail.com> To: linux-nvme@lists.infradead.org, linux-pm@vger.kernel.org Cc: Keith Busch <keith.busch@intel.com>, Akinobu Mita <akinobu.mita@gmail.com> Subject: [PATCH v3 1/3] nvme: Export get and set features Date: Mon, 27 May 2019 01:29:01 +0900 [thread overview] Message-ID: <1558888143-5121-2-git-send-email-akinobu.mita@gmail.com> (raw) In-Reply-To: <1558888143-5121-1-git-send-email-akinobu.mita@gmail.com> From: Keith Busch <keith.busch@intel.com> Future use intends to make use of both, so export these functions. And since their implementation is identical except for the opcode, provide a new function that implement both. [akinobu.mita@gmail.com>: fix line over 80 characters] Signed-off-by: Keith Busch <keith.busch@intel.com> Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> --- drivers/nvme/host/core.c | 24 +++++++++++++++++++++--- drivers/nvme/host/nvme.h | 6 ++++++ 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index c6a29a3..c950916 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -1113,15 +1113,15 @@ static struct nvme_id_ns *nvme_identify_ns(struct nvme_ctrl *ctrl, return id; } -static int nvme_set_features(struct nvme_ctrl *dev, unsigned fid, unsigned dword11, - void *buffer, size_t buflen, u32 *result) +static int nvme_features(struct nvme_ctrl *dev, u8 op, unsigned int fid, + unsigned int dword11, void *buffer, size_t buflen, u32 *result) { struct nvme_command c; union nvme_result res; int ret; memset(&c, 0, sizeof(c)); - c.features.opcode = nvme_admin_set_features; + c.features.opcode = op; c.features.fid = cpu_to_le32(fid); c.features.dword11 = cpu_to_le32(dword11); @@ -1132,6 +1132,24 @@ static int nvme_set_features(struct nvme_ctrl *dev, unsigned fid, unsigned dword return ret; } +int nvme_set_features(struct nvme_ctrl *dev, unsigned int fid, + unsigned int dword11, void *buffer, size_t buflen, + u32 *result) +{ + return nvme_features(dev, nvme_admin_set_features, fid, dword11, buffer, + buflen, result); +} +EXPORT_SYMBOL_GPL(nvme_set_features); + +int nvme_get_features(struct nvme_ctrl *dev, unsigned int fid, + unsigned int dword11, void *buffer, size_t buflen, + u32 *result) +{ + return nvme_features(dev, nvme_admin_get_features, fid, dword11, buffer, + buflen, result); +} +EXPORT_SYMBOL_GPL(nvme_get_features); + int nvme_set_queue_count(struct nvme_ctrl *ctrl, int *count) { u32 q_count = (*count - 1) | ((*count - 1) << 16); diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h index de624ec..802aa19 100644 --- a/drivers/nvme/host/nvme.h +++ b/drivers/nvme/host/nvme.h @@ -460,6 +460,12 @@ int __nvme_submit_sync_cmd(struct request_queue *q, struct nvme_command *cmd, union nvme_result *result, void *buffer, unsigned bufflen, unsigned timeout, int qid, int at_head, blk_mq_req_flags_t flags, bool poll); +int nvme_set_features(struct nvme_ctrl *dev, unsigned int fid, + unsigned int dword11, void *buffer, size_t buflen, + u32 *result); +int nvme_get_features(struct nvme_ctrl *dev, unsigned int fid, + unsigned int dword11, void *buffer, size_t buflen, + u32 *result); int nvme_set_queue_count(struct nvme_ctrl *ctrl, int *count); void nvme_stop_keep_alive(struct nvme_ctrl *ctrl); int nvme_reset_ctrl(struct nvme_ctrl *ctrl); -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: akinobu.mita@gmail.com (Akinobu Mita) Subject: [PATCH v3 1/3] nvme: Export get and set features Date: Mon, 27 May 2019 01:29:01 +0900 [thread overview] Message-ID: <1558888143-5121-2-git-send-email-akinobu.mita@gmail.com> (raw) In-Reply-To: <1558888143-5121-1-git-send-email-akinobu.mita@gmail.com> From: Keith Busch <keith.busch@intel.com> Future use intends to make use of both, so export these functions. And since their implementation is identical except for the opcode, provide a new function that implement both. [akinobu.mita at gmail.com>: fix line over 80 characters] Signed-off-by: Keith Busch <keith.busch at intel.com> Signed-off-by: Akinobu Mita <akinobu.mita at gmail.com> --- drivers/nvme/host/core.c | 24 +++++++++++++++++++++--- drivers/nvme/host/nvme.h | 6 ++++++ 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index c6a29a3..c950916 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -1113,15 +1113,15 @@ static struct nvme_id_ns *nvme_identify_ns(struct nvme_ctrl *ctrl, return id; } -static int nvme_set_features(struct nvme_ctrl *dev, unsigned fid, unsigned dword11, - void *buffer, size_t buflen, u32 *result) +static int nvme_features(struct nvme_ctrl *dev, u8 op, unsigned int fid, + unsigned int dword11, void *buffer, size_t buflen, u32 *result) { struct nvme_command c; union nvme_result res; int ret; memset(&c, 0, sizeof(c)); - c.features.opcode = nvme_admin_set_features; + c.features.opcode = op; c.features.fid = cpu_to_le32(fid); c.features.dword11 = cpu_to_le32(dword11); @@ -1132,6 +1132,24 @@ static int nvme_set_features(struct nvme_ctrl *dev, unsigned fid, unsigned dword return ret; } +int nvme_set_features(struct nvme_ctrl *dev, unsigned int fid, + unsigned int dword11, void *buffer, size_t buflen, + u32 *result) +{ + return nvme_features(dev, nvme_admin_set_features, fid, dword11, buffer, + buflen, result); +} +EXPORT_SYMBOL_GPL(nvme_set_features); + +int nvme_get_features(struct nvme_ctrl *dev, unsigned int fid, + unsigned int dword11, void *buffer, size_t buflen, + u32 *result) +{ + return nvme_features(dev, nvme_admin_get_features, fid, dword11, buffer, + buflen, result); +} +EXPORT_SYMBOL_GPL(nvme_get_features); + int nvme_set_queue_count(struct nvme_ctrl *ctrl, int *count) { u32 q_count = (*count - 1) | ((*count - 1) << 16); diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h index de624ec..802aa19 100644 --- a/drivers/nvme/host/nvme.h +++ b/drivers/nvme/host/nvme.h @@ -460,6 +460,12 @@ int __nvme_submit_sync_cmd(struct request_queue *q, struct nvme_command *cmd, union nvme_result *result, void *buffer, unsigned bufflen, unsigned timeout, int qid, int at_head, blk_mq_req_flags_t flags, bool poll); +int nvme_set_features(struct nvme_ctrl *dev, unsigned int fid, + unsigned int dword11, void *buffer, size_t buflen, + u32 *result); +int nvme_get_features(struct nvme_ctrl *dev, unsigned int fid, + unsigned int dword11, void *buffer, size_t buflen, + u32 *result); int nvme_set_queue_count(struct nvme_ctrl *ctrl, int *count); void nvme_stop_keep_alive(struct nvme_ctrl *ctrl); int nvme_reset_ctrl(struct nvme_ctrl *ctrl); -- 2.7.4
next prev parent reply other threads:[~2019-05-26 16:29 UTC|newest] Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-05-26 16:29 [PATCH v3 0/3] nvme: add thermal zone devices Akinobu Mita 2019-05-26 16:29 ` Akinobu Mita 2019-05-26 16:29 ` Akinobu Mita [this message] 2019-05-26 16:29 ` [PATCH v3 1/3] nvme: Export get and set features Akinobu Mita 2019-05-26 16:45 ` Chaitanya Kulkarni 2019-05-26 16:45 ` Chaitanya Kulkarni 2019-05-29 15:19 ` Minwoo Im 2019-05-29 15:19 ` Minwoo Im 2019-05-26 16:29 ` [PATCH v3 2/3] nvme: add thermal zone devices Akinobu Mita 2019-05-26 16:29 ` Akinobu Mita 2019-05-29 15:15 ` Minwoo Im 2019-05-29 15:15 ` Minwoo Im 2019-05-29 16:47 ` Akinobu Mita 2019-05-29 16:47 ` Akinobu Mita 2019-05-30 10:18 ` Minwoo Im 2019-05-30 10:18 ` Minwoo Im 2019-06-01 9:02 ` Christoph Hellwig 2019-06-01 9:02 ` Christoph Hellwig 2019-06-02 13:19 ` Akinobu Mita 2019-06-02 13:19 ` Akinobu Mita 2019-06-04 7:31 ` Christoph Hellwig 2019-06-04 7:31 ` Christoph Hellwig 2019-06-05 15:42 ` Akinobu Mita 2019-06-05 15:42 ` Akinobu Mita 2019-06-03 2:36 ` Eduardo Valentin 2019-06-03 2:36 ` Eduardo Valentin 2019-06-03 15:20 ` Akinobu Mita 2019-06-03 15:20 ` Akinobu Mita 2019-06-06 4:05 ` Eduardo Valentin 2019-06-06 4:05 ` Eduardo Valentin 2019-06-07 15:21 ` Akinobu Mita 2019-06-07 15:21 ` Akinobu Mita 2019-05-26 16:29 ` [PATCH v3 3/3] nvme: notify thermal framework when temperature threshold events occur Akinobu Mita 2019-05-26 16:29 ` Akinobu Mita 2019-06-01 9:03 ` Christoph Hellwig 2019-06-01 9:03 ` Christoph Hellwig 2019-06-02 13:46 ` Akinobu Mita 2019-06-02 13:46 ` Akinobu Mita 2019-06-04 7:32 ` Christoph Hellwig 2019-06-04 7:32 ` Christoph Hellwig
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1558888143-5121-2-git-send-email-akinobu.mita@gmail.com \ --to=akinobu.mita@gmail.com \ --cc=keith.busch@intel.com \ --cc=linux-nvme@lists.infradead.org \ --cc=linux-pm@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.