Lines Matching refs:cmd

158 megasas_complete_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd,
183 wait_and_poll(struct megasas_instance *instance, struct megasas_cmd *cmd,
194 megasas_issue_dcmd(struct megasas_instance *instance, struct megasas_cmd *cmd) in megasas_issue_dcmd() argument
197 cmd->frame_phys_addr, 0, instance->reg_set); in megasas_issue_dcmd()
210 struct megasas_cmd *cmd = NULL; in megasas_get_cmd() local
215 cmd = list_entry((&instance->cmd_pool)->next, in megasas_get_cmd()
217 list_del_init(&cmd->list); in megasas_get_cmd()
218 atomic_set(&cmd->mfi_mpt_pthr, MFI_MPT_DETACHED); in megasas_get_cmd()
224 return cmd; in megasas_get_cmd()
233 __megasas_return_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd) in __megasas_return_cmd() argument
241 if (atomic_read(&cmd->mfi_mpt_pthr) != MFI_MPT_DETACHED) in __megasas_return_cmd()
244 cmd->scmd = NULL; in __megasas_return_cmd()
245 cmd->frame_count = 0; in __megasas_return_cmd()
246 cmd->is_wait_event = 0; in __megasas_return_cmd()
247 cmd->mpt_pthr_cmd_blocked = NULL; in __megasas_return_cmd()
253 cmd->frame->hdr.cmd = MFI_CMD_INVALID; in __megasas_return_cmd()
255 atomic_set(&cmd->mfi_mpt_pthr, MFI_LIST_ADDED); in __megasas_return_cmd()
256 list_add(&cmd->list, (&instance->cmd_pool)->next); in __megasas_return_cmd()
265 megasas_return_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd) in megasas_return_cmd() argument
270 __megasas_return_cmd(instance, cmd); in megasas_return_cmd()
916 megasas_issue_polled(struct megasas_instance *instance, struct megasas_cmd *cmd) in megasas_issue_polled() argument
920 struct megasas_header *frame_hdr = &cmd->frame->hdr; in megasas_issue_polled()
928 instance->instancet->issue_dcmd(instance, cmd); in megasas_issue_polled()
937 return wait_and_poll(instance, cmd, seconds); in megasas_issue_polled()
952 struct megasas_cmd *cmd, int timeout) in megasas_issue_blocked_cmd() argument
955 cmd->cmd_status = ENODATA; in megasas_issue_blocked_cmd()
957 cmd->is_wait_event = 1; in megasas_issue_blocked_cmd()
958 instance->instancet->issue_dcmd(instance, cmd); in megasas_issue_blocked_cmd()
961 cmd->cmd_status != ENODATA, timeout * HZ); in megasas_issue_blocked_cmd()
966 cmd->cmd_status != ENODATA); in megasas_issue_blocked_cmd()
986 struct megasas_cmd *cmd; in megasas_issue_blocked_abort_cmd() local
990 cmd = megasas_get_cmd(instance); in megasas_issue_blocked_abort_cmd()
992 if (!cmd) in megasas_issue_blocked_abort_cmd()
995 abort_fr = &cmd->frame->abort; in megasas_issue_blocked_abort_cmd()
1000 abort_fr->cmd = MFI_CMD_ABORT; in megasas_issue_blocked_abort_cmd()
1009 cmd->sync_cmd = 1; in megasas_issue_blocked_abort_cmd()
1010 cmd->cmd_status = ENODATA; in megasas_issue_blocked_abort_cmd()
1012 instance->instancet->issue_dcmd(instance, cmd); in megasas_issue_blocked_abort_cmd()
1016 cmd->cmd_status != ENODATA, timeout * HZ); in megasas_issue_blocked_abort_cmd()
1024 cmd->cmd_status != ENODATA); in megasas_issue_blocked_abort_cmd()
1026 cmd->sync_cmd = 0; in megasas_issue_blocked_abort_cmd()
1028 megasas_return_cmd(instance, cmd); in megasas_issue_blocked_abort_cmd()
1191 struct megasas_cmd *cmd) in megasas_build_dcdb() argument
1200 pthru = (struct megasas_pthru_frame *)cmd->frame; in megasas_build_dcdb()
1216 pthru->cmd = (is_logical) ? MFI_CMD_LD_SCSI_IO : MFI_CMD_PD_SCSI_IO; in megasas_build_dcdb()
1266 cpu_to_le32(upper_32_bits(cmd->sense_phys_addr)); in megasas_build_dcdb()
1268 cpu_to_le32(lower_32_bits(cmd->sense_phys_addr)); in megasas_build_dcdb()
1274 cmd->frame_count = megasas_get_frame_count(instance, pthru->sge_count, in megasas_build_dcdb()
1277 return cmd->frame_count; in megasas_build_dcdb()
1290 struct megasas_cmd *cmd) in megasas_build_ldio() argument
1298 ldio = (struct megasas_io_frame *)cmd->frame; in megasas_build_ldio()
1312 ldio->cmd = (sc & 0x02) ? MFI_CMD_LD_WRITE : MFI_CMD_LD_READ; in megasas_build_ldio()
1407 ldio->sense_buf_phys_addr_lo = cpu_to_le32(cmd->sense_phys_addr); in megasas_build_ldio()
1413 cmd->frame_count = megasas_get_frame_count(instance, in megasas_build_ldio()
1416 return cmd->frame_count; in megasas_build_ldio()
1425 inline int megasas_cmd_type(struct scsi_cmnd *cmd) in megasas_cmd_type() argument
1429 switch (cmd->cmnd[0]) { in megasas_cmd_type()
1438 ret = (MEGASAS_IS_LOGICAL(cmd)) ? in megasas_cmd_type()
1442 ret = (MEGASAS_IS_LOGICAL(cmd)) ? in megasas_cmd_type()
1456 struct megasas_cmd *cmd; in megasas_dump_pending_frames() local
1473 cmd = instance->cmd_list[i]; in megasas_dump_pending_frames()
1474 if(!cmd->scmd) in megasas_dump_pending_frames()
1476 …printk(KERN_ERR "megasas[%d]: Frame addr :0x%08lx : ",instance->host->host_no,(unsigned long)cmd->… in megasas_dump_pending_frames()
1477 if (megasas_cmd_type(cmd->scmd) == READ_WRITE_LDIO) { in megasas_dump_pending_frames()
1478 ldio = (struct megasas_io_frame *)cmd->frame; in megasas_dump_pending_frames()
1483 instance->host->host_no, cmd->frame_count, ldio->cmd, ldio->target_id, in megasas_dump_pending_frames()
1488 pthru = (struct megasas_pthru_frame *) cmd->frame; in megasas_dump_pending_frames()
1493 instance->host->host_no, cmd->frame_count, pthru->cmd, pthru->target_id, in megasas_dump_pending_frames()
1514 cmd = instance->cmd_list[i]; in megasas_dump_pending_frames()
1516 if(cmd->sync_cmd == 1){ in megasas_dump_pending_frames()
1517 printk(KERN_ERR "0x%08lx : ", (unsigned long)cmd->frame_phys_addr); in megasas_dump_pending_frames()
1527 struct megasas_cmd *cmd; in megasas_build_and_issue_cmd() local
1530 cmd = megasas_get_cmd(instance); in megasas_build_and_issue_cmd()
1531 if (!cmd) in megasas_build_and_issue_cmd()
1538 frame_count = megasas_build_ldio(instance, scmd, cmd); in megasas_build_and_issue_cmd()
1540 frame_count = megasas_build_dcdb(instance, scmd, cmd); in megasas_build_and_issue_cmd()
1545 cmd->scmd = scmd; in megasas_build_and_issue_cmd()
1546 scmd->SCp.ptr = (char *)cmd; in megasas_build_and_issue_cmd()
1553 instance->instancet->fire_cmd(instance, cmd->frame_phys_addr, in megasas_build_and_issue_cmd()
1554 cmd->frame_count-1, instance->reg_set); in megasas_build_and_issue_cmd()
1558 megasas_return_cmd(instance, cmd); in megasas_build_and_issue_cmd()
1715 cmd_mfi->frame->hdr.cmd != MFI_CMD_ABORT) in megasas_complete_outstanding_ioctls()
1723 if (cmd_mfi->sync_cmd && cmd_mfi->frame->hdr.cmd != in megasas_complete_outstanding_ioctls()
1792 struct megasas_cmd *cmd; in megasas_complete_cmd_dpc() local
1814 cmd = instance->cmd_list[context]; in megasas_complete_cmd_dpc()
1816 megasas_complete_cmd(instance, cmd, DID_OK); in megasas_complete_cmd_dpc()
1878 struct megasas_cmd *cmd; in megasas_get_ld_vf_affiliation_111() local
1885 cmd = megasas_get_cmd(instance); in megasas_get_ld_vf_affiliation_111()
1887 if (!cmd) { in megasas_get_ld_vf_affiliation_111()
1894 dcmd = &cmd->frame->dcmd; in megasas_get_ld_vf_affiliation_111()
1899 megasas_return_cmd(instance, cmd); in megasas_get_ld_vf_affiliation_111()
1915 megasas_return_cmd(instance, cmd); in megasas_get_ld_vf_affiliation_111()
1924 dcmd->cmd = MFI_CMD_DCMD; in megasas_get_ld_vf_affiliation_111()
1945 megasas_issue_blocked_cmd(instance, cmd, 0); in megasas_get_ld_vf_affiliation_111()
1979 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) in megasas_get_ld_vf_affiliation_111()
1980 megasas_return_mfi_mpt_pthr(instance, cmd, in megasas_get_ld_vf_affiliation_111()
1981 cmd->mpt_pthr_cmd_blocked); in megasas_get_ld_vf_affiliation_111()
1983 megasas_return_cmd(instance, cmd); in megasas_get_ld_vf_affiliation_111()
1991 struct megasas_cmd *cmd; in megasas_get_ld_vf_affiliation_12() local
1999 cmd = megasas_get_cmd(instance); in megasas_get_ld_vf_affiliation_12()
2001 if (!cmd) { in megasas_get_ld_vf_affiliation_12()
2008 dcmd = &cmd->frame->dcmd; in megasas_get_ld_vf_affiliation_12()
2013 megasas_return_cmd(instance, cmd); in megasas_get_ld_vf_affiliation_12()
2030 megasas_return_cmd(instance, cmd); in megasas_get_ld_vf_affiliation_12()
2039 dcmd->cmd = MFI_CMD_DCMD; in megasas_get_ld_vf_affiliation_12()
2060 megasas_issue_blocked_cmd(instance, cmd, 0); in megasas_get_ld_vf_affiliation_12()
2150 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) in megasas_get_ld_vf_affiliation_12()
2151 megasas_return_mfi_mpt_pthr(instance, cmd, in megasas_get_ld_vf_affiliation_12()
2152 cmd->mpt_pthr_cmd_blocked); in megasas_get_ld_vf_affiliation_12()
2154 megasas_return_cmd(instance, cmd); in megasas_get_ld_vf_affiliation_12()
2176 struct megasas_cmd *cmd; in megasas_sriov_start_heartbeat() local
2180 cmd = megasas_get_cmd(instance); in megasas_sriov_start_heartbeat()
2182 if (!cmd) { in megasas_sriov_start_heartbeat()
2189 dcmd = &cmd->frame->dcmd; in megasas_sriov_start_heartbeat()
2208 dcmd->cmd = MFI_CMD_DCMD; in megasas_sriov_start_heartbeat()
2222 if (!megasas_issue_polled(instance, cmd)) { in megasas_sriov_start_heartbeat()
2243 megasas_return_cmd(instance, cmd); in megasas_sriov_start_heartbeat()
2597 megasas_service_aen(struct megasas_instance *instance, struct megasas_cmd *cmd) in megasas_service_aen() argument
2603 if ((!cmd->abort_aen) && (instance->unload == 0)) { in megasas_service_aen()
2611 cmd->abort_aen = 0; in megasas_service_aen()
2615 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) in megasas_service_aen()
2616 megasas_return_mfi_mpt_pthr(instance, cmd, in megasas_service_aen()
2617 cmd->mpt_pthr_cmd_blocked); in megasas_service_aen()
2619 megasas_return_cmd(instance, cmd); in megasas_service_aen()
2816 struct megasas_cmd *cmd) in megasas_complete_int_cmd() argument
2818 cmd->cmd_status = cmd->frame->io.cmd_status; in megasas_complete_int_cmd()
2820 if (cmd->cmd_status == ENODATA) { in megasas_complete_int_cmd()
2821 cmd->cmd_status = 0; in megasas_complete_int_cmd()
2837 struct megasas_cmd *cmd) in megasas_complete_abort() argument
2839 if (cmd->sync_cmd) { in megasas_complete_abort()
2840 cmd->sync_cmd = 0; in megasas_complete_abort()
2841 cmd->cmd_status = 0; in megasas_complete_abort()
2859 megasas_complete_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd, in megasas_complete_cmd() argument
2863 struct megasas_header *hdr = &cmd->frame->hdr; in megasas_complete_cmd()
2869 cmd->retry_for_fw_reset = 0; in megasas_complete_cmd()
2871 if (cmd->scmd) in megasas_complete_cmd()
2872 cmd->scmd->SCp.ptr = NULL; in megasas_complete_cmd()
2874 switch (hdr->cmd) { in megasas_complete_cmd()
2893 if (cmd->sync_cmd) { in megasas_complete_cmd()
2894 cmd->sync_cmd = 0; in megasas_complete_cmd()
2895 megasas_complete_int_cmd(instance, cmd); in megasas_complete_cmd()
2903 cmd->scmd->result = alt_status << 16; in megasas_complete_cmd()
2911 scsi_dma_unmap(cmd->scmd); in megasas_complete_cmd()
2912 cmd->scmd->scsi_done(cmd->scmd); in megasas_complete_cmd()
2913 megasas_return_cmd(instance, cmd); in megasas_complete_cmd()
2921 cmd->scmd->result = DID_OK << 16; in megasas_complete_cmd()
2926 cmd->scmd->result = in megasas_complete_cmd()
2932 cmd->scmd->result = (DID_OK << 16) | hdr->scsi_status; in megasas_complete_cmd()
2935 memset(cmd->scmd->sense_buffer, 0, in megasas_complete_cmd()
2937 memcpy(cmd->scmd->sense_buffer, cmd->sense, in megasas_complete_cmd()
2940 cmd->scmd->result |= DRIVER_SENSE << 24; in megasas_complete_cmd()
2947 cmd->scmd->result = DID_BAD_TARGET << 16; in megasas_complete_cmd()
2953 cmd->scmd->result = DID_ERROR << 16; in megasas_complete_cmd()
2959 scsi_dma_unmap(cmd->scmd); in megasas_complete_cmd()
2960 cmd->scmd->scsi_done(cmd->scmd); in megasas_complete_cmd()
2961 megasas_return_cmd(instance, cmd); in megasas_complete_cmd()
2968 opcode = le32_to_cpu(cmd->frame->dcmd.opcode); in megasas_complete_cmd()
2971 && (cmd->frame->dcmd.mbox.b[1] == 1)) { in megasas_complete_cmd()
2974 if (cmd->frame->hdr.cmd_status != 0) { in megasas_complete_cmd()
2975 if (cmd->frame->hdr.cmd_status != in megasas_complete_cmd()
2979 cmd->frame->hdr.cmd_status); in megasas_complete_cmd()
2982 cmd, cmd->mpt_pthr_cmd_blocked); in megasas_complete_cmd()
2990 megasas_return_mfi_mpt_pthr(instance, cmd, in megasas_complete_cmd()
2991 cmd->mpt_pthr_cmd_blocked); in megasas_complete_cmd()
3018 megasas_service_aen(instance, cmd); in megasas_complete_cmd()
3020 megasas_complete_int_cmd(instance, cmd); in megasas_complete_cmd()
3028 megasas_complete_abort(instance, cmd); in megasas_complete_cmd()
3033 hdr->cmd); in megasas_complete_cmd()
3046 struct megasas_cmd *cmd; in megasas_issue_pending_cmds_again() local
3058 cmd = list_entry((&clist_local)->next, in megasas_issue_pending_cmds_again()
3060 list_del_init(&cmd->list); in megasas_issue_pending_cmds_again()
3062 if (cmd->sync_cmd || cmd->scmd) { in megasas_issue_pending_cmds_again()
3065 cmd, cmd->scmd, cmd->sync_cmd); in megasas_issue_pending_cmds_again()
3067 cmd->retry_for_fw_reset++; in megasas_issue_pending_cmds_again()
3069 if (cmd->retry_for_fw_reset == 3) { in megasas_issue_pending_cmds_again()
3073 cmd, cmd->scmd, cmd->sync_cmd); in megasas_issue_pending_cmds_again()
3081 if (cmd->sync_cmd == 1) { in megasas_issue_pending_cmds_again()
3082 if (cmd->scmd) { in megasas_issue_pending_cmds_again()
3088 "issue it again.\n", cmd); in megasas_issue_pending_cmds_again()
3089 cmd->cmd_status = ENODATA; in megasas_issue_pending_cmds_again()
3091 cmd->frame_phys_addr , in megasas_issue_pending_cmds_again()
3093 } else if (cmd->scmd) { in megasas_issue_pending_cmds_again()
3096 cmd, cmd->scmd->cmnd[0]); in megasas_issue_pending_cmds_again()
3100 cmd->frame_phys_addr, in megasas_issue_pending_cmds_again()
3101 cmd->frame_count-1, instance->reg_set); in megasas_issue_pending_cmds_again()
3105 cmd); in megasas_issue_pending_cmds_again()
3139 struct megasas_cmd *cmd; in megasas_internal_reset_defer_cmds() local
3148 cmd = instance->cmd_list[i]; in megasas_internal_reset_defer_cmds()
3149 if (cmd->sync_cmd == 1 || cmd->scmd) { in megasas_internal_reset_defer_cmds()
3152 defer_index, cmd, cmd->sync_cmd, cmd->scmd); in megasas_internal_reset_defer_cmds()
3154 if (!list_empty(&cmd->list)) { in megasas_internal_reset_defer_cmds()
3158 cmd, cmd->sync_cmd, cmd->scmd); in megasas_internal_reset_defer_cmds()
3160 list_del_init(&cmd->list); in megasas_internal_reset_defer_cmds()
3163 list_add_tail(&cmd->list, in megasas_internal_reset_defer_cmds()
3547 struct megasas_cmd *cmd; in megasas_teardown_frame_pool() local
3557 cmd = instance->cmd_list[i]; in megasas_teardown_frame_pool()
3559 if (cmd->frame) in megasas_teardown_frame_pool()
3560 pci_pool_free(instance->frame_dma_pool, cmd->frame, in megasas_teardown_frame_pool()
3561 cmd->frame_phys_addr); in megasas_teardown_frame_pool()
3563 if (cmd->sense) in megasas_teardown_frame_pool()
3564 pci_pool_free(instance->sense_dma_pool, cmd->sense, in megasas_teardown_frame_pool()
3565 cmd->sense_phys_addr); in megasas_teardown_frame_pool()
3594 struct megasas_cmd *cmd; in megasas_create_frame_pool() local
3652 cmd = instance->cmd_list[i]; in megasas_create_frame_pool()
3654 cmd->frame = pci_pool_alloc(instance->frame_dma_pool, in megasas_create_frame_pool()
3655 GFP_KERNEL, &cmd->frame_phys_addr); in megasas_create_frame_pool()
3657 cmd->sense = pci_pool_alloc(instance->sense_dma_pool, in megasas_create_frame_pool()
3658 GFP_KERNEL, &cmd->sense_phys_addr); in megasas_create_frame_pool()
3664 if (!cmd->frame || !cmd->sense) { in megasas_create_frame_pool()
3670 memset(cmd->frame, 0, total_sz); in megasas_create_frame_pool()
3671 cmd->frame->io.context = cpu_to_le32(cmd->index); in megasas_create_frame_pool()
3672 cmd->frame->io.pad_0 = 0; in megasas_create_frame_pool()
3678 cmd->frame->hdr.cmd = MFI_CMD_INVALID; in megasas_create_frame_pool()
3729 struct megasas_cmd *cmd; in megasas_alloc_cmds() local
3766 cmd = instance->cmd_list[i]; in megasas_alloc_cmds()
3767 memset(cmd, 0, sizeof(struct megasas_cmd)); in megasas_alloc_cmds()
3768 cmd->index = i; in megasas_alloc_cmds()
3769 atomic_set(&cmd->mfi_mpt_pthr, MFI_LIST_ADDED); in megasas_alloc_cmds()
3770 cmd->scmd = NULL; in megasas_alloc_cmds()
3771 cmd->instance = instance; in megasas_alloc_cmds()
3773 list_add_tail(&cmd->list, &instance->cmd_pool); in megasas_alloc_cmds()
3800 struct megasas_cmd *cmd; in megasas_get_pd_list() local
3806 cmd = megasas_get_cmd(instance); in megasas_get_pd_list()
3808 if (!cmd) { in megasas_get_pd_list()
3813 dcmd = &cmd->frame->dcmd; in megasas_get_pd_list()
3820 megasas_return_cmd(instance, cmd); in megasas_get_pd_list()
3829 dcmd->cmd = MFI_CMD_DCMD; in megasas_get_pd_list()
3841 ret = megasas_issue_blocked_cmd(instance, cmd, in megasas_get_pd_list()
3844 ret = megasas_issue_polled(instance, cmd); in megasas_get_pd_list()
3877 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) in megasas_get_pd_list()
3878 megasas_return_mfi_mpt_pthr(instance, cmd, in megasas_get_pd_list()
3879 cmd->mpt_pthr_cmd_blocked); in megasas_get_pd_list()
3881 megasas_return_cmd(instance, cmd); in megasas_get_pd_list()
3899 struct megasas_cmd *cmd; in megasas_get_ld_list() local
3905 cmd = megasas_get_cmd(instance); in megasas_get_ld_list()
3907 if (!cmd) { in megasas_get_ld_list()
3912 dcmd = &cmd->frame->dcmd; in megasas_get_ld_list()
3920 megasas_return_cmd(instance, cmd); in megasas_get_ld_list()
3929 dcmd->cmd = MFI_CMD_DCMD; in megasas_get_ld_list()
3941 ret = megasas_issue_blocked_cmd(instance, cmd, in megasas_get_ld_list()
3944 ret = megasas_issue_polled(instance, cmd); in megasas_get_ld_list()
3968 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) in megasas_get_ld_list()
3969 megasas_return_mfi_mpt_pthr(instance, cmd, in megasas_get_ld_list()
3970 cmd->mpt_pthr_cmd_blocked); in megasas_get_ld_list()
3972 megasas_return_cmd(instance, cmd); in megasas_get_ld_list()
3989 struct megasas_cmd *cmd; in megasas_ld_list_query() local
3995 cmd = megasas_get_cmd(instance); in megasas_ld_list_query()
3997 if (!cmd) { in megasas_ld_list_query()
4003 dcmd = &cmd->frame->dcmd; in megasas_ld_list_query()
4011 megasas_return_cmd(instance, cmd); in megasas_ld_list_query()
4022 dcmd->cmd = MFI_CMD_DCMD; in megasas_ld_list_query()
4034 ret = megasas_issue_blocked_cmd(instance, cmd, in megasas_ld_list_query()
4037 ret = megasas_issue_polled(instance, cmd); in megasas_ld_list_query()
4053 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) in megasas_ld_list_query()
4054 megasas_return_mfi_mpt_pthr(instance, cmd, in megasas_ld_list_query()
4055 cmd->mpt_pthr_cmd_blocked); in megasas_ld_list_query()
4057 megasas_return_cmd(instance, cmd); in megasas_ld_list_query()
4131 struct megasas_cmd *cmd; in megasas_get_ctrl_info() local
4139 cmd = megasas_get_cmd(instance); in megasas_get_ctrl_info()
4141 if (!cmd) { in megasas_get_ctrl_info()
4146 dcmd = &cmd->frame->dcmd; in megasas_get_ctrl_info()
4153 megasas_return_cmd(instance, cmd); in megasas_get_ctrl_info()
4160 dcmd->cmd = MFI_CMD_DCMD; in megasas_get_ctrl_info()
4173 ret = megasas_issue_blocked_cmd(instance, cmd, in megasas_get_ctrl_info()
4176 ret = megasas_issue_polled(instance, cmd); in megasas_get_ctrl_info()
4189 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) in megasas_get_ctrl_info()
4190 megasas_return_mfi_mpt_pthr(instance, cmd, in megasas_get_ctrl_info()
4191 cmd->mpt_pthr_cmd_blocked); in megasas_get_ctrl_info()
4193 megasas_return_cmd(instance, cmd); in megasas_get_ctrl_info()
4216 struct megasas_cmd *cmd; in megasas_set_crash_dump_params() local
4219 cmd = megasas_get_cmd(instance); in megasas_set_crash_dump_params()
4221 if (!cmd) { in megasas_set_crash_dump_params()
4227 dcmd = &cmd->frame->dcmd; in megasas_set_crash_dump_params()
4231 dcmd->cmd = MFI_CMD_DCMD; in megasas_set_crash_dump_params()
4243 ret = megasas_issue_blocked_cmd(instance, cmd, in megasas_set_crash_dump_params()
4246 ret = megasas_issue_polled(instance, cmd); in megasas_set_crash_dump_params()
4248 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) in megasas_set_crash_dump_params()
4249 megasas_return_mfi_mpt_pthr(instance, cmd, in megasas_set_crash_dump_params()
4250 cmd->mpt_pthr_cmd_blocked); in megasas_set_crash_dump_params()
4252 megasas_return_cmd(instance, cmd); in megasas_set_crash_dump_params()
4267 struct megasas_cmd *cmd; in megasas_issue_init_mfi() local
4282 cmd = megasas_get_cmd(instance); in megasas_issue_init_mfi()
4284 init_frame = (struct megasas_init_frame *)cmd->frame; in megasas_issue_init_mfi()
4288 init_frame_h = cmd->frame_phys_addr; in megasas_issue_init_mfi()
4302 init_frame->cmd = MFI_CMD_INIT; in megasas_issue_init_mfi()
4320 if (megasas_issue_polled(instance, cmd)) { in megasas_issue_init_mfi()
4322 megasas_return_cmd(instance, cmd); in megasas_issue_init_mfi()
4326 megasas_return_cmd(instance, cmd); in megasas_issue_init_mfi()
4783 struct megasas_cmd *cmd; in megasas_get_seq_num() local
4788 cmd = megasas_get_cmd(instance); in megasas_get_seq_num()
4790 if (!cmd) { in megasas_get_seq_num()
4794 dcmd = &cmd->frame->dcmd; in megasas_get_seq_num()
4800 megasas_return_cmd(instance, cmd); in megasas_get_seq_num()
4807 dcmd->cmd = MFI_CMD_DCMD; in megasas_get_seq_num()
4818 if (megasas_issue_blocked_cmd(instance, cmd, 30)) in megasas_get_seq_num()
4835 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) in megasas_get_seq_num()
4836 megasas_return_mfi_mpt_pthr(instance, cmd, in megasas_get_seq_num()
4837 cmd->mpt_pthr_cmd_blocked); in megasas_get_seq_num()
4839 megasas_return_cmd(instance, cmd); in megasas_get_seq_num()
4858 struct megasas_cmd *cmd; in megasas_register_aen() local
4920 cmd = megasas_get_cmd(instance); in megasas_register_aen()
4922 if (!cmd) in megasas_register_aen()
4925 dcmd = &cmd->frame->dcmd; in megasas_register_aen()
4934 dcmd->cmd = MFI_CMD_DCMD; in megasas_register_aen()
4949 megasas_return_cmd(instance, cmd); in megasas_register_aen()
4958 instance->aen_cmd = cmd; in megasas_register_aen()
4963 instance->instancet->issue_dcmd(instance, cmd); in megasas_register_aen()
5461 struct megasas_cmd *cmd; in megasas_flush_cache() local
5467 cmd = megasas_get_cmd(instance); in megasas_flush_cache()
5469 if (!cmd) in megasas_flush_cache()
5472 dcmd = &cmd->frame->dcmd; in megasas_flush_cache()
5476 dcmd->cmd = MFI_CMD_DCMD; in megasas_flush_cache()
5486 if (megasas_issue_blocked_cmd(instance, cmd, 30)) in megasas_flush_cache()
5490 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) in megasas_flush_cache()
5491 megasas_return_mfi_mpt_pthr(instance, cmd, in megasas_flush_cache()
5492 cmd->mpt_pthr_cmd_blocked); in megasas_flush_cache()
5494 megasas_return_cmd(instance, cmd); in megasas_flush_cache()
5507 struct megasas_cmd *cmd; in megasas_shutdown_controller() local
5513 cmd = megasas_get_cmd(instance); in megasas_shutdown_controller()
5515 if (!cmd) in megasas_shutdown_controller()
5524 dcmd = &cmd->frame->dcmd; in megasas_shutdown_controller()
5528 dcmd->cmd = MFI_CMD_DCMD; in megasas_shutdown_controller()
5537 if (megasas_issue_blocked_cmd(instance, cmd, 30)) in megasas_shutdown_controller()
5541 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) in megasas_shutdown_controller()
5542 megasas_return_mfi_mpt_pthr(instance, cmd, in megasas_shutdown_controller()
5543 cmd->mpt_pthr_cmd_blocked); in megasas_shutdown_controller()
5545 megasas_return_cmd(instance, cmd); in megasas_shutdown_controller()
6003 struct megasas_cmd *cmd) in megasas_set_crash_dump_params_ioctl() argument
6009 crash_support = cmd->frame->dcmd.mbox.w[0]; in megasas_set_crash_dump_params_ioctl()
6046 struct megasas_cmd *cmd; in megasas_mgmt_fw_ioctl() local
6062 cmd = megasas_get_cmd(instance); in megasas_mgmt_fw_ioctl()
6063 if (!cmd) { in megasas_mgmt_fw_ioctl()
6074 memcpy(cmd->frame, ioc->frame.raw, 2 * MEGAMFI_FRAME_SIZE); in megasas_mgmt_fw_ioctl()
6075 cmd->frame->hdr.context = cpu_to_le32(cmd->index); in megasas_mgmt_fw_ioctl()
6076 cmd->frame->hdr.pad_0 = 0; in megasas_mgmt_fw_ioctl()
6077 cmd->frame->hdr.flags &= cpu_to_le16(~(MFI_FRAME_IEEE | in megasas_mgmt_fw_ioctl()
6081 if (cmd->frame->dcmd.opcode == MR_DRIVER_SET_APP_CRASHDUMP_MODE) { in megasas_mgmt_fw_ioctl()
6082 error = megasas_set_crash_dump_params_ioctl(cmd); in megasas_mgmt_fw_ioctl()
6083 megasas_return_cmd(instance, cmd); in megasas_mgmt_fw_ioctl()
6096 ((unsigned long)cmd->frame + ioc->sgl_off); in megasas_mgmt_fw_ioctl()
6142 (unsigned long *) ((unsigned long)cmd->frame + ioc->sense_off); in megasas_mgmt_fw_ioctl()
6150 cmd->sync_cmd = 1; in megasas_mgmt_fw_ioctl()
6151 megasas_issue_blocked_cmd(instance, cmd, 0); in megasas_mgmt_fw_ioctl()
6152 cmd->sync_cmd = 0; in megasas_mgmt_fw_ioctl()
6194 &cmd->frame->hdr.cmd_status, sizeof(u8))) { in megasas_mgmt_fw_ioctl()
6214 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) in megasas_mgmt_fw_ioctl()
6215 megasas_return_mfi_mpt_pthr(instance, cmd, in megasas_mgmt_fw_ioctl()
6216 cmd->mpt_pthr_cmd_blocked); in megasas_mgmt_fw_ioctl()
6218 megasas_return_cmd(instance, cmd); in megasas_mgmt_fw_ioctl()
6381 megasas_mgmt_ioctl(struct file *file, unsigned int cmd, unsigned long arg) in megasas_mgmt_ioctl() argument
6383 switch (cmd) { in megasas_mgmt_ioctl()
6450 megasas_mgmt_compat_ioctl(struct file *file, unsigned int cmd, in megasas_mgmt_compat_ioctl() argument
6453 switch (cmd) { in megasas_mgmt_compat_ioctl()