Lines Matching refs:drv_cmd

2128  * @drv_cmd: Internal command tracker
2137 struct mpi3mr_drv_cmd *drv_cmd)
2139 u16 cmd_idx = drv_cmd->host_tag - MPI3MR_HOSTTAG_DEVRMCMD_MIN;
2142 if (drv_cmd->state & MPI3MR_CMD_RESET)
2147 __func__, drv_cmd->dev_handle, drv_cmd->ioc_status,
2148 drv_cmd->ioc_loginfo);
2149 if (drv_cmd->ioc_status != MPI3_IOCSTATUS_SUCCESS) {
2150 if (drv_cmd->retry_count < MPI3MR_DEV_RMHS_RETRY_COUNT) {
2151 drv_cmd->retry_count++;
2154 __func__, drv_cmd->dev_handle,
2155 drv_cmd->retry_count);
2156 mpi3mr_dev_rmhs_send_tm(mrioc, drv_cmd->dev_handle,
2157 drv_cmd, drv_cmd->iou_rc);
2162 __func__, drv_cmd->dev_handle);
2166 __func__, drv_cmd->dev_handle);
2167 clear_bit(drv_cmd->dev_handle, mrioc->removepend_bitmap);
2173 drv_cmd->dev_handle = delayed_dev_rmhs->handle;
2174 drv_cmd->retry_count = 0;
2175 drv_cmd->iou_rc = delayed_dev_rmhs->iou_rc;
2178 __func__, drv_cmd->dev_handle);
2179 mpi3mr_dev_rmhs_send_tm(mrioc, drv_cmd->dev_handle, drv_cmd,
2180 drv_cmd->iou_rc);
2187 drv_cmd->state = MPI3MR_CMD_NOTUSED;
2188 drv_cmd->callback = NULL;
2189 drv_cmd->retry_count = 0;
2190 drv_cmd->dev_handle = MPI3MR_INVALID_DEV_HANDLE;
2197 * @drv_cmd: Internal command tracker
2206 struct mpi3mr_drv_cmd *drv_cmd)
2209 u16 cmd_idx = drv_cmd->host_tag - MPI3MR_HOSTTAG_DEVRMCMD_MIN;
2213 if (drv_cmd->state & MPI3MR_CMD_RESET)
2216 if (drv_cmd->state & MPI3MR_CMD_REPLY_VALID)
2217 tm_reply = (struct mpi3_scsi_task_mgmt_reply *)drv_cmd->reply;
2222 mrioc->name, drv_cmd->dev_handle, drv_cmd->ioc_status,
2223 drv_cmd->ioc_loginfo,
2227 mrioc->name, drv_cmd->dev_handle, cmd_idx);
2231 drv_cmd->state = MPI3MR_CMD_PENDING;
2232 drv_cmd->is_waiting = 0;
2233 drv_cmd->callback = mpi3mr_dev_rmhs_complete_iou;
2234 iou_ctrl.operation = drv_cmd->iou_rc;
2235 iou_ctrl.param16[0] = cpu_to_le16(drv_cmd->dev_handle);
2236 iou_ctrl.host_tag = cpu_to_le16(drv_cmd->host_tag);
2249 drv_cmd->state = MPI3MR_CMD_NOTUSED;
2250 drv_cmd->callback = NULL;
2251 drv_cmd->dev_handle = MPI3MR_INVALID_DEV_HANDLE;
2252 drv_cmd->retry_count = 0;
2276 struct mpi3mr_drv_cmd *drv_cmd = cmdparam;
2287 if (drv_cmd)
2313 drv_cmd = &mrioc->dev_rmhs_cmds[cmd_idx];
2316 cmd_idx = drv_cmd->host_tag - MPI3MR_HOSTTAG_DEVRMCMD_MIN;
2322 if (drv_cmd->state & MPI3MR_CMD_PENDING) {
2326 drv_cmd->state = MPI3MR_CMD_PENDING;
2327 drv_cmd->is_waiting = 0;
2328 drv_cmd->callback = mpi3mr_dev_rmhs_complete_tm;
2329 drv_cmd->dev_handle = handle;
2330 drv_cmd->iou_rc = iou_rc;
2333 tm_req.host_tag = cpu_to_le16(drv_cmd->host_tag);
2347 drv_cmd->state = MPI3MR_CMD_NOTUSED;
2348 drv_cmd->callback = NULL;
2349 drv_cmd->dev_handle = MPI3MR_INVALID_DEV_HANDLE;
2350 drv_cmd->retry_count = 0;
2357 * @drv_cmd: Internal command tracker
2366 struct mpi3mr_drv_cmd *drv_cmd)
2368 u16 cmd_idx = drv_cmd->host_tag - MPI3MR_HOSTTAG_EVTACKCMD_MIN;
2371 if (drv_cmd->state & MPI3MR_CMD_RESET)
2374 if (drv_cmd->ioc_status != MPI3_IOCSTATUS_SUCCESS) {
2377 (drv_cmd->ioc_status & MPI3_IOCSTATUS_STATUS_MASK),
2378 drv_cmd->ioc_loginfo);
2385 mpi3mr_send_event_ack(mrioc, delayed_evtack->event, drv_cmd,
2392 drv_cmd->state = MPI3MR_CMD_NOTUSED;
2393 drv_cmd->callback = NULL;
2418 struct mpi3mr_drv_cmd *drv_cmd = cmdparam;
2421 if (drv_cmd) {
2456 drv_cmd = &mrioc->evtack_cmds[cmd_idx];
2459 cmd_idx = drv_cmd->host_tag - MPI3MR_HOSTTAG_EVTACKCMD_MIN;
2462 if (drv_cmd->state & MPI3MR_CMD_PENDING) {
2467 drv_cmd->state = MPI3MR_CMD_PENDING;
2468 drv_cmd->is_waiting = 0;
2469 drv_cmd->callback = mpi3mr_complete_evt_ack;
2470 evtack_req.host_tag = cpu_to_le16(drv_cmd->host_tag);
2488 drv_cmd->state = MPI3MR_CMD_NOTUSED;
2489 drv_cmd->callback = NULL;
3634 * @drv_cmd: Internal command tracker
3647 struct mpi3mr_drv_cmd *drv_cmd,
3669 mutex_lock(&drv_cmd->mutex);
3670 if (drv_cmd->state & MPI3MR_CMD_PENDING) {
3673 mutex_unlock(&drv_cmd->mutex);
3679 mutex_unlock(&drv_cmd->mutex);
3683 drv_cmd->state = MPI3MR_CMD_PENDING;
3684 drv_cmd->is_waiting = 1;
3685 drv_cmd->callback = NULL;
3716 init_completion(&drv_cmd->done);
3722 wait_for_completion_timeout(&drv_cmd->done, (timeout * HZ));
3724 if (!(drv_cmd->state & MPI3MR_CMD_COMPLETE)) {
3725 drv_cmd->is_waiting = 0;
3727 if (!(drv_cmd->state & MPI3MR_CMD_RESET)) {
3739 if (!(drv_cmd->state & MPI3MR_CMD_REPLY_VALID)) {
3745 tm_reply = (struct mpi3_scsi_task_mgmt_reply *)drv_cmd->reply;
3747 switch (drv_cmd->ioc_status) {
3758 handle, drv_cmd->ioc_status, drv_cmd->ioc_loginfo);
3778 tm_type, handle, drv_cmd->ioc_status, drv_cmd->ioc_loginfo,
3810 drv_cmd->state = MPI3MR_CMD_NOTUSED;
3811 mutex_unlock(&drv_cmd->mutex);