Lines Matching refs:ns

671 static int nvme_trans_standard_inquiry_page(struct nvme_ns *ns,  in nvme_trans_standard_inquiry_page()  argument
675 struct nvme_dev *dev = ns->dev; in nvme_trans_standard_inquiry_page()
695 nvme_sc = nvme_identify(dev, ns->ns_id, 0, dma_addr); in nvme_trans_standard_inquiry_page()
737 static int nvme_trans_supported_vpd_pages(struct nvme_ns *ns, in nvme_trans_supported_vpd_pages() argument
760 static int nvme_trans_unit_serial_page(struct nvme_ns *ns, in nvme_trans_unit_serial_page() argument
764 struct nvme_dev *dev = ns->dev; in nvme_trans_unit_serial_page()
779 static int nvme_trans_device_id_page(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_device_id_page() argument
782 struct nvme_dev *dev = ns->dev; in nvme_trans_device_id_page()
788 __be32 tmp_id = cpu_to_be32(ns->ns_id); in nvme_trans_device_id_page()
804 nvme_sc = nvme_identify(dev, ns->ns_id, 0, dma_addr); in nvme_trans_device_id_page()
860 static int nvme_trans_ext_inq_page(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_ext_inq_page() argument
866 struct nvme_dev *dev = ns->dev; in nvme_trans_ext_inq_page()
894 nvme_sc = nvme_identify(dev, ns->ns_id, 0, dma_addr); in nvme_trans_ext_inq_page()
944 static int nvme_trans_bdev_limits_page(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_bdev_limits_page() argument
948 nvme_block_nr(ns, queue_max_hw_sectors(ns->queue))); in nvme_trans_bdev_limits_page()
949 __be32 max_discard = cpu_to_be32(ns->queue->limits.max_discard_sectors); in nvme_trans_bdev_limits_page()
964 static int nvme_trans_bdev_char_page(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_bdev_char_page() argument
994 static int nvme_trans_log_supp_pages(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_log_supp_pages() argument
1022 static int nvme_trans_log_info_exceptions(struct nvme_ns *ns, in nvme_trans_log_info_exceptions() argument
1029 struct nvme_dev *dev = ns->dev; in nvme_trans_log_info_exceptions()
1089 static int nvme_trans_log_temperature(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_log_temperature() argument
1096 struct nvme_dev *dev = ns->dev; in nvme_trans_log_temperature()
1196 static int nvme_trans_fill_blk_desc(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_fill_blk_desc() argument
1201 struct nvme_dev *dev = ns->dev; in nvme_trans_fill_blk_desc()
1221 nvme_sc = nvme_identify(dev, ns->ns_id, 0, dma_addr); in nvme_trans_fill_blk_desc()
1256 static int nvme_trans_fill_control_page(struct nvme_ns *ns, in nvme_trans_fill_control_page() argument
1278 static int nvme_trans_fill_caching_page(struct nvme_ns *ns, in nvme_trans_fill_caching_page() argument
1284 struct nvme_dev *dev = ns->dev; in nvme_trans_fill_caching_page()
1310 static int nvme_trans_fill_pow_cnd_page(struct nvme_ns *ns, in nvme_trans_fill_pow_cnd_page() argument
1326 static int nvme_trans_fill_inf_exc_page(struct nvme_ns *ns, in nvme_trans_fill_inf_exc_page() argument
1343 static int nvme_trans_fill_all_pages(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_fill_all_pages() argument
1354 res = nvme_trans_fill_caching_page(ns, hdr, &resp[mode_pages_offset_1], in nvme_trans_fill_all_pages()
1358 res = nvme_trans_fill_control_page(ns, hdr, &resp[mode_pages_offset_2], in nvme_trans_fill_all_pages()
1362 res = nvme_trans_fill_pow_cnd_page(ns, hdr, &resp[mode_pages_offset_3], in nvme_trans_fill_all_pages()
1366 res = nvme_trans_fill_inf_exc_page(ns, hdr, &resp[mode_pages_offset_4], in nvme_trans_fill_all_pages()
1385 static int nvme_trans_mode_page_create(struct nvme_ns *ns, in nvme_trans_mode_page_create() argument
1425 res = nvme_trans_fill_blk_desc(ns, hdr, in nvme_trans_mode_page_create()
1431 res = mode_page_fill_func(ns, hdr, &response[mode_pages_offset_1], in nvme_trans_mode_page_create()
1485 static int nvme_trans_power_state(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_power_state() argument
1490 struct nvme_dev *dev = ns->dev; in nvme_trans_power_state()
1569 static int nvme_trans_send_fw_cmd(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_send_fw_cmd() argument
1575 struct nvme_dev *dev = ns->dev; in nvme_trans_send_fw_cmd()
1646 static void nvme_trans_modesel_save_bd(struct nvme_ns *ns, u8 *parm_list, in nvme_trans_modesel_save_bd() argument
1657 ns->mode_select_num_blocks = in nvme_trans_modesel_save_bd()
1662 ns->mode_select_block_len = in nvme_trans_modesel_save_bd()
1668 ns->mode_select_num_blocks = in nvme_trans_modesel_save_bd()
1678 ns->mode_select_block_len = in nvme_trans_modesel_save_bd()
1686 static int nvme_trans_modesel_get_mp(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_modesel_get_mp() argument
1691 struct nvme_dev *dev = ns->dev; in nvme_trans_modesel_get_mp()
1734 static int nvme_trans_modesel_data(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_modesel_data() argument
1762 nvme_trans_modesel_save_bd(ns, parm_list, index, bd_len, llbaa); in nvme_trans_modesel_data()
1790 res = nvme_trans_modesel_get_mp(ns, hdr, &parm_list[index], in nvme_trans_modesel_data()
1805 static int nvme_trans_fmt_set_blk_size_count(struct nvme_ns *ns, in nvme_trans_fmt_set_blk_size_count() argument
1810 struct nvme_dev *dev = ns->dev; in nvme_trans_fmt_set_blk_size_count()
1823 if (ns->mode_select_num_blocks == 0 || ns->mode_select_block_len == 0) { in nvme_trans_fmt_set_blk_size_count()
1831 nvme_sc = nvme_identify(dev, ns->ns_id, 0, dma_addr); in nvme_trans_fmt_set_blk_size_count()
1841 if (ns->mode_select_num_blocks == 0) in nvme_trans_fmt_set_blk_size_count()
1842 ns->mode_select_num_blocks = le64_to_cpu(id_ns->ncap); in nvme_trans_fmt_set_blk_size_count()
1843 if (ns->mode_select_block_len == 0) { in nvme_trans_fmt_set_blk_size_count()
1845 ns->mode_select_block_len = in nvme_trans_fmt_set_blk_size_count()
1916 static int nvme_trans_fmt_send_cmd(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_fmt_send_cmd() argument
1921 struct nvme_dev *dev = ns->dev; in nvme_trans_fmt_send_cmd()
1939 nvme_sc = nvme_identify(dev, ns->ns_id, 0, dma_addr); in nvme_trans_fmt_send_cmd()
1952 if (ns->mode_select_block_len == (1 << (id_ns->lbaf[i].ds))) { in nvme_trans_fmt_send_cmd()
1962 if (ns->mode_select_num_blocks != le64_to_cpu(id_ns->ncap)) { in nvme_trans_fmt_send_cmd()
1972 c.format.nsid = cpu_to_le32(ns->ns_id); in nvme_trans_fmt_send_cmd()
2051 static u16 nvme_trans_io_get_control(struct nvme_ns *ns, in nvme_trans_io_get_control() argument
2064 static int nvme_trans_do_nvme_io(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_do_nvme_io() argument
2069 struct nvme_dev *dev = ns->dev; in nvme_trans_do_nvme_io()
2081 u32 max_blocks = queue_max_hw_sectors(ns->queue); in nvme_trans_do_nvme_io()
2105 unit_num_blocks = unit_len >> ns->lba_shift; in nvme_trans_do_nvme_io()
2110 unit_len = unit_num_blocks << ns->lba_shift; in nvme_trans_do_nvme_io()
2112 ((1 << ns->lba_shift) * nvme_offset); in nvme_trans_do_nvme_io()
2116 c.rw.nsid = cpu_to_le32(ns->ns_id); in nvme_trans_do_nvme_io()
2119 control = nvme_trans_io_get_control(ns, cdb_info); in nvme_trans_do_nvme_io()
2143 nvme_sc = nvme_submit_io_cmd(dev, ns, &c, NULL); in nvme_trans_do_nvme_io()
2166 static int nvme_trans_io(struct nvme_ns *ns, struct sg_io_hdr *hdr, u8 is_write, in nvme_trans_io() argument
2212 if (sgl.iov_len % (1 << ns->lba_shift) != 0) { in nvme_trans_io()
2229 if (xfer_bytes != (cdb_info.xfer_len << ns->lba_shift)) { in nvme_trans_io()
2239 res = nvme_trans_do_nvme_io(ns, hdr, &cdb_info, is_write); in nvme_trans_io()
2247 static int nvme_trans_inquiry(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_inquiry() argument
2269 res = nvme_trans_standard_inquiry_page(ns, hdr, in nvme_trans_inquiry()
2281 res = nvme_trans_supported_vpd_pages(ns, hdr, in nvme_trans_inquiry()
2285 res = nvme_trans_unit_serial_page(ns, hdr, inq_response, in nvme_trans_inquiry()
2289 res = nvme_trans_device_id_page(ns, hdr, inq_response, in nvme_trans_inquiry()
2293 res = nvme_trans_ext_inq_page(ns, hdr, alloc_len); in nvme_trans_inquiry()
2296 res = nvme_trans_bdev_limits_page(ns, hdr, inq_response, in nvme_trans_inquiry()
2300 res = nvme_trans_bdev_char_page(ns, hdr, alloc_len); in nvme_trans_inquiry()
2316 static int nvme_trans_log_sense(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_log_sense() argument
2344 res = nvme_trans_log_supp_pages(ns, hdr, alloc_len); in nvme_trans_log_sense()
2347 res = nvme_trans_log_info_exceptions(ns, hdr, alloc_len); in nvme_trans_log_sense()
2350 res = nvme_trans_log_temperature(ns, hdr, alloc_len); in nvme_trans_log_sense()
2363 static int nvme_trans_mode_select(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_mode_select() argument
2392 res = nvme_trans_modesel_data(ns, hdr, cmd, parm_list_len, in nvme_trans_mode_select()
2399 static int nvme_trans_mode_sense(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_mode_sense() argument
2429 res = nvme_trans_mode_page_create(ns, hdr, cmd, alloc_len, in nvme_trans_mode_sense()
2435 res = nvme_trans_mode_page_create(ns, hdr, cmd, alloc_len, in nvme_trans_mode_sense()
2441 res = nvme_trans_mode_page_create(ns, hdr, cmd, alloc_len, in nvme_trans_mode_sense()
2447 res = nvme_trans_mode_page_create(ns, hdr, cmd, alloc_len, in nvme_trans_mode_sense()
2453 res = nvme_trans_mode_page_create(ns, hdr, cmd, alloc_len, in nvme_trans_mode_sense()
2469 static int nvme_trans_read_capacity(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_read_capacity() argument
2478 struct nvme_dev *dev = ns->dev; in nvme_trans_read_capacity()
2497 nvme_sc = nvme_identify(dev, ns->ns_id, 0, dma_addr); in nvme_trans_read_capacity()
2525 static int nvme_trans_report_luns(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_report_luns() argument
2533 struct nvme_dev *dev = ns->dev; in nvme_trans_report_luns()
2611 static int nvme_trans_request_sense(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_request_sense() argument
2661 static int nvme_trans_security_protocol(struct nvme_ns *ns, in nvme_trans_security_protocol() argument
2670 static int nvme_trans_start_stop(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_start_stop() argument
2699 c.common.nsid = cpu_to_le32(ns->ns_id); in nvme_trans_start_stop()
2701 nvme_sc = nvme_submit_io_cmd(ns->dev, ns, &c, NULL); in nvme_trans_start_stop()
2711 res = nvme_trans_power_state(ns, hdr, pc, pcmod, start); in nvme_trans_start_stop()
2718 static int nvme_trans_synchronize_cache(struct nvme_ns *ns, in nvme_trans_synchronize_cache() argument
2727 c.common.nsid = cpu_to_le32(ns->ns_id); in nvme_trans_synchronize_cache()
2729 nvme_sc = nvme_submit_io_cmd(ns->dev, ns, &c, NULL); in nvme_trans_synchronize_cache()
2741 static int nvme_trans_format_unit(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_format_unit() argument
2787 res = nvme_trans_send_fw_cmd(ns, hdr, nvme_admin_activate_fw, 0, 0, 0); in nvme_trans_format_unit()
2790 res = nvme_trans_fmt_set_blk_size_count(ns, hdr); in nvme_trans_format_unit()
2794 res = nvme_trans_fmt_send_cmd(ns, hdr, nvme_pf_code); in nvme_trans_format_unit()
2800 static int nvme_trans_test_unit_ready(struct nvme_ns *ns, in nvme_trans_test_unit_ready() argument
2805 struct nvme_dev *dev = ns->dev; in nvme_trans_test_unit_ready()
2817 static int nvme_trans_write_buffer(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_write_buffer() argument
2847 res = nvme_trans_send_fw_cmd(ns, hdr, nvme_admin_download_fw, in nvme_trans_write_buffer()
2852 res = nvme_trans_send_fw_cmd(ns, hdr, nvme_admin_activate_fw, in nvme_trans_write_buffer()
2857 res = nvme_trans_send_fw_cmd(ns, hdr, nvme_admin_download_fw, in nvme_trans_write_buffer()
2862 res = nvme_trans_send_fw_cmd(ns, hdr, nvme_admin_activate_fw, in nvme_trans_write_buffer()
2890 static int nvme_trans_unmap(struct nvme_ns *ns, struct sg_io_hdr *hdr, in nvme_trans_unmap() argument
2893 struct nvme_dev *dev = ns->dev; in nvme_trans_unmap()
2932 c.dsm.nsid = cpu_to_le32(ns->ns_id); in nvme_trans_unmap()
2937 nvme_sc = nvme_submit_io_cmd(dev, ns, &c, NULL); in nvme_trans_unmap()
2947 static int nvme_scsi_translate(struct nvme_ns *ns, struct sg_io_hdr *hdr) in nvme_scsi_translate() argument
2973 retcode = nvme_trans_io(ns, hdr, 0, cmd); in nvme_scsi_translate()
2979 retcode = nvme_trans_io(ns, hdr, 1, cmd); in nvme_scsi_translate()
2982 retcode = nvme_trans_inquiry(ns, hdr, cmd); in nvme_scsi_translate()
2985 retcode = nvme_trans_log_sense(ns, hdr, cmd); in nvme_scsi_translate()
2989 retcode = nvme_trans_mode_select(ns, hdr, cmd); in nvme_scsi_translate()
2993 retcode = nvme_trans_mode_sense(ns, hdr, cmd); in nvme_scsi_translate()
2996 retcode = nvme_trans_read_capacity(ns, hdr, cmd); in nvme_scsi_translate()
3000 retcode = nvme_trans_read_capacity(ns, hdr, cmd); in nvme_scsi_translate()
3005 retcode = nvme_trans_report_luns(ns, hdr, cmd); in nvme_scsi_translate()
3008 retcode = nvme_trans_request_sense(ns, hdr, cmd); in nvme_scsi_translate()
3012 retcode = nvme_trans_security_protocol(ns, hdr, cmd); in nvme_scsi_translate()
3015 retcode = nvme_trans_start_stop(ns, hdr, cmd); in nvme_scsi_translate()
3018 retcode = nvme_trans_synchronize_cache(ns, hdr, cmd); in nvme_scsi_translate()
3021 retcode = nvme_trans_format_unit(ns, hdr, cmd); in nvme_scsi_translate()
3024 retcode = nvme_trans_test_unit_ready(ns, hdr, cmd); in nvme_scsi_translate()
3027 retcode = nvme_trans_write_buffer(ns, hdr, cmd); in nvme_scsi_translate()
3030 retcode = nvme_trans_unmap(ns, hdr, cmd); in nvme_scsi_translate()
3042 int nvme_sg_io(struct nvme_ns *ns, struct sg_io_hdr __user *u_hdr) in nvme_sg_io() argument
3056 retcode = nvme_scsi_translate(ns, &hdr); in nvme_sg_io()