Lines Matching refs:ioarcb
310 struct pmcraid_ioarcb *ioarcb = &(cmd->ioa_cb->ioarcb); in pmcraid_init_cmdblk() local
319 ioarcb->response_handle = cpu_to_le32(index << 2); in pmcraid_init_cmdblk()
320 ioarcb->ioarcb_bus_addr = cpu_to_le64(dma_addr); in pmcraid_init_cmdblk()
321 ioarcb->ioasa_bus_addr = cpu_to_le64(dma_addr + ioasa_offset); in pmcraid_init_cmdblk()
322 ioarcb->ioasa_len = cpu_to_le16(sizeof(struct pmcraid_ioasa)); in pmcraid_init_cmdblk()
327 memset(&cmd->ioa_cb->ioarcb.cdb, 0, PMCRAID_MAX_CDB_LEN); in pmcraid_init_cmdblk()
328 ioarcb->hrrq_id = 0; in pmcraid_init_cmdblk()
329 ioarcb->request_flags0 = 0; in pmcraid_init_cmdblk()
330 ioarcb->request_flags1 = 0; in pmcraid_init_cmdblk()
331 ioarcb->cmd_timeout = 0; in pmcraid_init_cmdblk()
332 ioarcb->ioarcb_bus_addr &= (~0x1FULL); in pmcraid_init_cmdblk()
333 ioarcb->ioadl_bus_addr = 0; in pmcraid_init_cmdblk()
334 ioarcb->ioadl_length = 0; in pmcraid_init_cmdblk()
335 ioarcb->data_transfer_length = 0; in pmcraid_init_cmdblk()
336 ioarcb->add_cmd_param_length = 0; in pmcraid_init_cmdblk()
337 ioarcb->add_cmd_param_offset = 0; in pmcraid_init_cmdblk()
713 cmd->ioa_cb->ioarcb.cdb[0]); in pmcraid_timeout_handler()
781 cmd->ioa_cb->ioarcb.cdb[0], in pmcraid_internal_done()
819 cmd->ioa_cb->ioarcb.cdb[0], in pmcraid_reinit_cfgtable_done()
850 cmd->ioa_cb->ioarcb.cdb[0], ioasc); in pmcraid_erp_done()
900 iowrite32(le32_to_cpu(cmd->ioa_cb->ioarcb.ioarcb_bus_addr), in _pmcraid_fire_command()
968 cmd->ioa_cb->ioarcb.cdb[0], in pmcraid_ioa_shutdown()
975 cmd->ioa_cb->ioarcb.request_type = REQ_TYPE_IOACMD; in pmcraid_ioa_shutdown()
976 cmd->ioa_cb->ioarcb.resource_handle = in pmcraid_ioa_shutdown()
978 cmd->ioa_cb->ioarcb.cdb[0] = PMCRAID_IOA_SHUTDOWN; in pmcraid_ioa_shutdown()
979 cmd->ioa_cb->ioarcb.cdb[1] = PMCRAID_SHUTDOWN_NORMAL; in pmcraid_ioa_shutdown()
983 le32_to_cpu(cmd->ioa_cb->ioarcb.response_handle)); in pmcraid_ioa_shutdown()
1033 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; in pmcraid_get_fwversion() local
1034 struct pmcraid_ioadl_desc *ioadl = ioarcb->add_data.u.ioadl; in pmcraid_get_fwversion()
1039 ioarcb->request_type = REQ_TYPE_SCSI; in pmcraid_get_fwversion()
1040 ioarcb->resource_handle = cpu_to_le32(PMCRAID_IOA_RES_HANDLE); in pmcraid_get_fwversion()
1041 ioarcb->cdb[0] = INQUIRY; in pmcraid_get_fwversion()
1042 ioarcb->cdb[1] = 1; in pmcraid_get_fwversion()
1043 ioarcb->cdb[2] = 0xD0; in pmcraid_get_fwversion()
1044 ioarcb->cdb[3] = (data_size >> 8) & 0xFF; in pmcraid_get_fwversion()
1045 ioarcb->cdb[4] = data_size & 0xFF; in pmcraid_get_fwversion()
1049 ioarcb->ioadl_bus_addr = cpu_to_le64((cmd->ioa_cb_bus_addr) + in pmcraid_get_fwversion()
1052 ioarcb->ioadl_length = cpu_to_le32(sizeof(struct pmcraid_ioadl_desc)); in pmcraid_get_fwversion()
1053 ioarcb->ioarcb_bus_addr &= ~(0x1FULL); in pmcraid_get_fwversion()
1055 ioarcb->request_flags0 |= NO_LINK_DESCS; in pmcraid_get_fwversion()
1056 ioarcb->data_transfer_length = cpu_to_le32(data_size); in pmcraid_get_fwversion()
1057 ioadl = &(ioarcb->add_data.u.ioadl[0]); in pmcraid_get_fwversion()
1076 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; in pmcraid_identify_hrrq() local
1093 ioarcb->request_type = REQ_TYPE_IOACMD; in pmcraid_identify_hrrq()
1094 ioarcb->resource_handle = cpu_to_le32(PMCRAID_IOA_RES_HANDLE); in pmcraid_identify_hrrq()
1097 ioarcb->hrrq_id = index; in pmcraid_identify_hrrq()
1098 ioarcb->cdb[0] = PMCRAID_IDENTIFY_HRRQ; in pmcraid_identify_hrrq()
1099 ioarcb->cdb[1] = index; in pmcraid_identify_hrrq()
1105 hrrq_addr, ioarcb->ioarcb_bus_addr, index); in pmcraid_identify_hrrq()
1107 memcpy(&(ioarcb->cdb[2]), &hrrq_addr, sizeof(hrrq_addr)); in pmcraid_identify_hrrq()
1108 memcpy(&(ioarcb->cdb[10]), &hrrq_size, sizeof(hrrq_size)); in pmcraid_identify_hrrq()
1132 if (cmd->ioa_cb->ioarcb.cdb[1] == PMCRAID_HCAM_CODE_CONFIG_CHANGE) in pmcraid_send_hcam_cmd()
1156 struct pmcraid_ioarcb *ioarcb; in pmcraid_init_hcam() local
1185 ioarcb = &cmd->ioa_cb->ioarcb; in pmcraid_init_hcam()
1186 ioarcb->ioadl_bus_addr = cpu_to_le64((cmd->ioa_cb_bus_addr) + in pmcraid_init_hcam()
1189 ioarcb->ioadl_length = cpu_to_le32(sizeof(struct pmcraid_ioadl_desc)); in pmcraid_init_hcam()
1190 ioadl = ioarcb->add_data.u.ioadl; in pmcraid_init_hcam()
1193 ioarcb->request_type = REQ_TYPE_HCAM; in pmcraid_init_hcam()
1194 ioarcb->resource_handle = cpu_to_le32(PMCRAID_IOA_RES_HANDLE); in pmcraid_init_hcam()
1195 ioarcb->cdb[0] = PMCRAID_HOST_CONTROLLED_ASYNC; in pmcraid_init_hcam()
1196 ioarcb->cdb[1] = type; in pmcraid_init_hcam()
1197 ioarcb->cdb[7] = (rcb_size >> 8) & 0xFF; in pmcraid_init_hcam()
1198 ioarcb->cdb[8] = (rcb_size) & 0xFF; in pmcraid_init_hcam()
1200 ioarcb->data_transfer_length = cpu_to_le32(rcb_size); in pmcraid_init_hcam()
1238 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; in pmcraid_prepare_cancel_cmd() local
1239 __be64 ioarcb_addr = cmd_to_cancel->ioa_cb->ioarcb.ioarcb_bus_addr; in pmcraid_prepare_cancel_cmd()
1244 ioarcb->resource_handle = cmd_to_cancel->ioa_cb->ioarcb.resource_handle; in pmcraid_prepare_cancel_cmd()
1245 ioarcb->request_type = REQ_TYPE_IOACMD; in pmcraid_prepare_cancel_cmd()
1246 memset(ioarcb->cdb, 0, PMCRAID_MAX_CDB_LEN); in pmcraid_prepare_cancel_cmd()
1247 ioarcb->cdb[0] = PMCRAID_ABORT_CMD; in pmcraid_prepare_cancel_cmd()
1254 memcpy(&(ioarcb->cdb[2]), &ioarcb_addr, sizeof(ioarcb_addr)); in pmcraid_prepare_cancel_cmd()
1301 cmd->ioa_cb->ioarcb.cdb[0], in pmcraid_cancel_ccn()
1722 cmd->ioa_cb->ioarcb.cdb[0], in pmcraid_ioasc_logger()
1723 cmd->ioa_cb->ioarcb.resource_handle, in pmcraid_ioasc_logger()
2054 __le32 resp = cmd->ioa_cb->ioarcb.response_handle; in pmcraid_fail_outstanding_cmds()
2063 cmd->ioa_cb->ioarcb.cdb[0], in pmcraid_fail_outstanding_cmds()
2464 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; in pmcraid_request_sense() local
2465 struct pmcraid_ioadl_desc *ioadl = ioarcb->add_data.u.ioadl; in pmcraid_request_sense()
2481 memset(ioarcb->cdb, 0, PMCRAID_MAX_CDB_LEN); in pmcraid_request_sense()
2482 ioarcb->request_flags0 = (SYNC_COMPLETE | in pmcraid_request_sense()
2485 ioarcb->request_type = REQ_TYPE_SCSI; in pmcraid_request_sense()
2486 ioarcb->cdb[0] = REQUEST_SENSE; in pmcraid_request_sense()
2487 ioarcb->cdb[4] = SCSI_SENSE_BUFFERSIZE; in pmcraid_request_sense()
2489 ioarcb->ioadl_bus_addr = cpu_to_le64((cmd->ioa_cb_bus_addr) + in pmcraid_request_sense()
2492 ioarcb->ioadl_length = cpu_to_le32(sizeof(struct pmcraid_ioadl_desc)); in pmcraid_request_sense()
2494 ioarcb->data_transfer_length = cpu_to_le32(SCSI_SENSE_BUFFERSIZE); in pmcraid_request_sense()
2520 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; in pmcraid_cancel_all() local
2525 memset(ioarcb->cdb, 0, PMCRAID_MAX_CDB_LEN); in pmcraid_cancel_all()
2526 ioarcb->request_flags0 = SYNC_OVERRIDE; in pmcraid_cancel_all()
2527 ioarcb->request_type = REQ_TYPE_IOACMD; in pmcraid_cancel_all()
2528 ioarcb->cdb[0] = PMCRAID_CANCEL_ALL_REQUESTS; in pmcraid_cancel_all()
2531 ioarcb->cdb[1] = PMCRAID_SYNC_COMPLETE_AFTER_CANCEL; in pmcraid_cancel_all()
2533 ioarcb->ioadl_bus_addr = 0; in pmcraid_cancel_all()
2534 ioarcb->ioadl_length = 0; in pmcraid_cancel_all()
2535 ioarcb->data_transfer_length = 0; in pmcraid_cancel_all()
2536 ioarcb->ioarcb_bus_addr &= (~0x1FULL); in pmcraid_cancel_all()
2751 struct pmcraid_ioarcb *ioarcb; in pmcraid_reset_device() local
2791 ioarcb = &cmd->ioa_cb->ioarcb; in pmcraid_reset_device()
2792 ioarcb->resource_handle = res->cfg_entry.resource_handle; in pmcraid_reset_device()
2793 ioarcb->request_type = REQ_TYPE_IOACMD; in pmcraid_reset_device()
2794 ioarcb->cdb[0] = PMCRAID_RESET_DEVICE; in pmcraid_reset_device()
2800 ioarcb->cdb[1] = modifier; in pmcraid_reset_device()
2806 cmd->ioa_cb->ioarcb.cdb[0], in pmcraid_reset_device()
2807 le32_to_cpu(cmd->ioa_cb->ioarcb.resource_handle), in pmcraid_reset_device()
2808 le32_to_cpu(cmd->ioa_cb->ioarcb.response_handle) >> 2); in pmcraid_reset_device()
2858 le32_to_cpu(cmd->ioa_cb->ioarcb.response_handle) >> 2, in _pmcraid_io_done()
2859 cmd->ioa_cb->ioarcb.cdb[0], in _pmcraid_io_done()
2921 cmd->ioa_cb->ioarcb.cdb[0], in pmcraid_abort_cmd()
2922 cmd->ioa_cb->ioarcb.response_handle >> 2); in pmcraid_abort_cmd()
2928 le32_to_cpu(cancel_cmd->ioa_cb->ioarcb.response_handle) >> 2, in pmcraid_abort_cmd()
2929 cancel_cmd->ioa_cb->ioarcb.cdb[0], in pmcraid_abort_cmd()
2930 le32_to_cpu(cancel_cmd->ioa_cb->ioarcb.resource_handle)); in pmcraid_abort_cmd()
3143 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; in pmcraid_init_ioadls() local
3146 if (ioarcb->add_cmd_param_length) in pmcraid_init_ioadls()
3147 ioadl_count = DIV_ROUND_UP(ioarcb->add_cmd_param_length, 16); in pmcraid_init_ioadls()
3148 ioarcb->ioadl_length = in pmcraid_init_ioadls()
3151 if ((sgcount + ioadl_count) > (ARRAY_SIZE(ioarcb->add_data.u.ioadl))) { in pmcraid_init_ioadls()
3157 ioarcb->ioarcb_bus_addr &= ~(0x1FULL); in pmcraid_init_ioadls()
3158 ioarcb->ioadl_bus_addr = in pmcraid_init_ioadls()
3162 ioadl = &ioarcb->add_data.u.ioadl[3]; in pmcraid_init_ioadls()
3164 ioarcb->ioadl_bus_addr = in pmcraid_init_ioadls()
3169 ioadl = &ioarcb->add_data.u.ioadl[ioadl_count]; in pmcraid_init_ioadls()
3170 ioarcb->ioarcb_bus_addr |= in pmcraid_init_ioadls()
3197 struct pmcraid_ioarcb *ioarcb = &(cmd->ioa_cb->ioarcb); in pmcraid_build_ioadl() local
3198 struct pmcraid_ioadl_desc *ioadl = ioarcb->add_data.u.ioadl; in pmcraid_build_ioadl()
3219 ioarcb->request_flags0 |= TRANSFER_DIR_WRITE; in pmcraid_build_ioadl()
3221 ioarcb->request_flags0 |= NO_LINK_DESCS; in pmcraid_build_ioadl()
3222 ioarcb->data_transfer_length = cpu_to_le32(length); in pmcraid_build_ioadl()
3417 struct pmcraid_ioarcb *ioarcb; in pmcraid_queuecommand_lck() local
3461 ioarcb = &(cmd->ioa_cb->ioarcb); in pmcraid_queuecommand_lck()
3462 memcpy(ioarcb->cdb, scsi_cmd->cmnd, scsi_cmd->cmd_len); in pmcraid_queuecommand_lck()
3463 ioarcb->resource_handle = res->cfg_entry.resource_handle; in pmcraid_queuecommand_lck()
3464 ioarcb->request_type = REQ_TYPE_SCSI; in pmcraid_queuecommand_lck()
3471 ioarcb->hrrq_id = atomic_add_return(1, &(pinstance->last_message_id)) % in pmcraid_queuecommand_lck()
3477 ioarcb->request_flags0 |= INHIBIT_UL_CHECK; in pmcraid_queuecommand_lck()
3480 ioarcb->request_flags0 |= SYNC_COMPLETE; in pmcraid_queuecommand_lck()
3484 ioarcb->request_flags0 |= NO_LINK_DESCS; in pmcraid_queuecommand_lck()
3487 ioarcb->request_flags1 |= TASK_TAG_SIMPLE; in pmcraid_queuecommand_lck()
3490 ioarcb->request_flags1 |= DELAY_AFTER_RESET; in pmcraid_queuecommand_lck()
3496 le32_to_cpu(ioarcb->response_handle) >> 2, in pmcraid_queuecommand_lck()
3576 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; in pmcraid_build_passthrough_ioadls() local
3599 ioarcb->request_flags0 |= NO_LINK_DESCS; in pmcraid_build_passthrough_ioadls()
3663 struct pmcraid_ioarcb *ioarcb; in pmcraid_ioctl_passthrough() local
3722 request_size = buffer->ioarcb.data_transfer_length; in pmcraid_ioctl_passthrough()
3724 if (buffer->ioarcb.request_flags0 & TRANSFER_DIR_WRITE) { in pmcraid_ioctl_passthrough()
3745 if (buffer->ioarcb.add_cmd_param_length > PMCRAID_ADD_CMD_PARAM_LEN) { in pmcraid_ioctl_passthrough()
3759 ioarcb = &(cmd->ioa_cb->ioarcb); in pmcraid_ioctl_passthrough()
3762 ioarcb->resource_handle = buffer->ioarcb.resource_handle; in pmcraid_ioctl_passthrough()
3763 ioarcb->data_transfer_length = buffer->ioarcb.data_transfer_length; in pmcraid_ioctl_passthrough()
3764 ioarcb->cmd_timeout = buffer->ioarcb.cmd_timeout; in pmcraid_ioctl_passthrough()
3765 ioarcb->request_type = buffer->ioarcb.request_type; in pmcraid_ioctl_passthrough()
3766 ioarcb->request_flags0 = buffer->ioarcb.request_flags0; in pmcraid_ioctl_passthrough()
3767 ioarcb->request_flags1 = buffer->ioarcb.request_flags1; in pmcraid_ioctl_passthrough()
3768 memcpy(ioarcb->cdb, buffer->ioarcb.cdb, PMCRAID_MAX_CDB_LEN); in pmcraid_ioctl_passthrough()
3770 if (buffer->ioarcb.add_cmd_param_length) { in pmcraid_ioctl_passthrough()
3771 ioarcb->add_cmd_param_length = in pmcraid_ioctl_passthrough()
3772 buffer->ioarcb.add_cmd_param_length; in pmcraid_ioctl_passthrough()
3773 ioarcb->add_cmd_param_offset = in pmcraid_ioctl_passthrough()
3774 buffer->ioarcb.add_cmd_param_offset; in pmcraid_ioctl_passthrough()
3775 memcpy(ioarcb->add_data.u.add_cmd_params, in pmcraid_ioctl_passthrough()
3776 buffer->ioarcb.add_data.u.add_cmd_params, in pmcraid_ioctl_passthrough()
3777 buffer->ioarcb.add_cmd_param_length); in pmcraid_ioctl_passthrough()
3785 ioarcb->hrrq_id = atomic_add_return(1, &(pinstance->last_message_id)) % in pmcraid_ioctl_passthrough()
3823 le32_to_cpu(cmd->ioa_cb->ioarcb.response_handle) >> 2, in pmcraid_ioctl_passthrough()
3824 cmd->ioa_cb->ioarcb.cdb[0], in pmcraid_ioctl_passthrough()
3825 le32_to_cpu(cmd->ioa_cb->ioarcb.resource_handle)); in pmcraid_ioctl_passthrough()
3837 buffer->ioarcb.cmd_timeout = 0; in pmcraid_ioctl_passthrough()
3843 if (buffer->ioarcb.cmd_timeout == 0) { in pmcraid_ioctl_passthrough()
3847 msecs_to_jiffies(buffer->ioarcb.cmd_timeout * 1000))) { in pmcraid_ioctl_passthrough()
3850 le32_to_cpu(cmd->ioa_cb->ioarcb.response_handle >> 2), in pmcraid_ioctl_passthrough()
3851 cmd->ioa_cb->ioarcb.cdb[0]); in pmcraid_ioctl_passthrough()
5520 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; in pmcraid_set_supported_devs() local
5525 ioarcb->resource_handle = cpu_to_le32(PMCRAID_IOA_RES_HANDLE); in pmcraid_set_supported_devs()
5526 ioarcb->request_type = REQ_TYPE_IOACMD; in pmcraid_set_supported_devs()
5527 ioarcb->cdb[0] = PMCRAID_SET_SUPPORTED_DEVICES; in pmcraid_set_supported_devs()
5528 ioarcb->cdb[1] = ALL_DEVICES_SUPPORTED; in pmcraid_set_supported_devs()
5562 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; in pmcraid_set_timestamp() local
5564 struct pmcraid_ioadl_desc *ioadl = ioarcb->add_data.u.ioadl; in pmcraid_set_timestamp()
5580 ioarcb->request_type = REQ_TYPE_SCSI; in pmcraid_set_timestamp()
5581 ioarcb->resource_handle = cpu_to_le32(PMCRAID_IOA_RES_HANDLE); in pmcraid_set_timestamp()
5582 ioarcb->cdb[0] = PMCRAID_SCSI_SET_TIMESTAMP; in pmcraid_set_timestamp()
5583 ioarcb->cdb[1] = PMCRAID_SCSI_SERVICE_ACTION; in pmcraid_set_timestamp()
5584 memcpy(&(ioarcb->cdb[6]), &time_stamp_len, sizeof(time_stamp_len)); in pmcraid_set_timestamp()
5586 ioarcb->ioadl_bus_addr = cpu_to_le64((cmd->ioa_cb_bus_addr) + in pmcraid_set_timestamp()
5589 ioarcb->ioadl_length = cpu_to_le32(sizeof(struct pmcraid_ioadl_desc)); in pmcraid_set_timestamp()
5590 ioarcb->ioarcb_bus_addr &= ~(0x1FULL); in pmcraid_set_timestamp()
5592 ioarcb->request_flags0 |= NO_LINK_DESCS; in pmcraid_set_timestamp()
5593 ioarcb->request_flags0 |= TRANSFER_DIR_WRITE; in pmcraid_set_timestamp()
5594 ioarcb->data_transfer_length = in pmcraid_set_timestamp()
5596 ioadl = &(ioarcb->add_data.u.ioadl[0]); in pmcraid_set_timestamp()
5739 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; in pmcraid_querycfg() local
5740 struct pmcraid_ioadl_desc *ioadl = ioarcb->add_data.u.ioadl; in pmcraid_querycfg()
5752 ioarcb->request_type = REQ_TYPE_IOACMD; in pmcraid_querycfg()
5753 ioarcb->resource_handle = cpu_to_le32(PMCRAID_IOA_RES_HANDLE); in pmcraid_querycfg()
5755 ioarcb->cdb[0] = PMCRAID_QUERY_IOA_CONFIG; in pmcraid_querycfg()
5758 memcpy(&(ioarcb->cdb[10]), &cfg_table_size, sizeof(cfg_table_size)); in pmcraid_querycfg()
5763 ioarcb->ioadl_bus_addr = cpu_to_le64((cmd->ioa_cb_bus_addr) + in pmcraid_querycfg()
5766 ioarcb->ioadl_length = cpu_to_le32(sizeof(struct pmcraid_ioadl_desc)); in pmcraid_querycfg()
5767 ioarcb->ioarcb_bus_addr &= ~(0x1FULL); in pmcraid_querycfg()
5769 ioarcb->request_flags0 |= NO_LINK_DESCS; in pmcraid_querycfg()
5770 ioarcb->data_transfer_length = in pmcraid_querycfg()
5773 ioadl = &(ioarcb->add_data.u.ioadl[0]); in pmcraid_querycfg()