Skip to content

Commit

Permalink
NVMe: Simplify Firmware Activate code slightly
Browse files Browse the repository at this point in the history
Add definitions for the three Firmware Activate actions, and change the
SCSI translation code to construct the command into a temporary variable
instead of translating the endianness back-and-forth.

Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
Reviewed-by: Vishal Verma <vishal.l.verma@linux.intel.com>
  • Loading branch information
Matthew Wilcox committed May 8, 2013
1 parent 44af146 commit ab3ea5b
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 4 deletions.
6 changes: 2 additions & 4 deletions drivers/block/nvme-scsi.c
Original file line number Diff line number Diff line change
Expand Up @@ -1577,10 +1577,8 @@ static int nvme_trans_send_fw_cmd(struct nvme_ns *ns, struct sg_io_hdr *hdr,
c.dlfw.numd = cpu_to_le32((tot_len/BYTES_TO_DWORDS) - 1);
c.dlfw.offset = cpu_to_le32(offset/BYTES_TO_DWORDS);
} else if (opcode == nvme_admin_activate_fw) {
c.common.cdw10[0] = cpu_to_le32(buffer_id);
/* AA=01b Replace & activate at reset */
c.common.cdw10[0] = cpu_to_le32(le32_to_cpu(
c.common.cdw10[0]) | 0x00000008);
u32 cdw10 = buffer_id | NVME_FWACT_REPL_ACTV;
c.common.cdw10[0] = cpu_to_le32(cdw10);
}

nvme_sc = nvme_submit_admin_cmd(dev, &c, NULL);
Expand Down
3 changes: 3 additions & 0 deletions include/linux/nvme.h
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,9 @@ enum {
NVME_FEAT_WRITE_ATOMIC = 0x0a,
NVME_FEAT_ASYNC_EVENT = 0x0b,
NVME_FEAT_SW_PROGRESS = 0x0c,
NVME_FWACT_REPL = (0 << 3),
NVME_FWACT_REPL_ACTV = (1 << 3),
NVME_FWACT_ACTV = (2 << 3),
};

struct nvme_identify {
Expand Down

0 comments on commit ab3ea5b

Please sign in to comment.