Lines Matching refs:ioarcb

296 	struct pmcraid_ioarcb *ioarcb = &(cmd->ioa_cb->ioarcb);
305 ioarcb->response_handle = cpu_to_le32(index << 2);
306 ioarcb->ioarcb_bus_addr = cpu_to_le64(dma_addr);
307 ioarcb->ioasa_bus_addr = cpu_to_le64(dma_addr + ioasa_offset);
308 ioarcb->ioasa_len = cpu_to_le16(sizeof(struct pmcraid_ioasa));
313 memset(&cmd->ioa_cb->ioarcb.cdb, 0, PMCRAID_MAX_CDB_LEN);
314 ioarcb->hrrq_id = 0;
315 ioarcb->request_flags0 = 0;
316 ioarcb->request_flags1 = 0;
317 ioarcb->cmd_timeout = 0;
318 ioarcb->ioarcb_bus_addr &= cpu_to_le64(~0x1FULL);
319 ioarcb->ioadl_bus_addr = 0;
320 ioarcb->ioadl_length = 0;
321 ioarcb->data_transfer_length = 0;
322 ioarcb->add_cmd_param_length = 0;
323 ioarcb->add_cmd_param_offset = 0;
691 cmd->ioa_cb->ioarcb.cdb[0]);
759 cmd->ioa_cb->ioarcb.cdb[0],
797 cmd->ioa_cb->ioarcb.cdb[0],
828 cmd->ioa_cb->ioarcb.cdb[0], ioasc);
871 iowrite32(le64_to_cpu(cmd->ioa_cb->ioarcb.ioarcb_bus_addr), pinstance->ioarrin);
937 cmd->ioa_cb->ioarcb.cdb[0],
944 cmd->ioa_cb->ioarcb.request_type = REQ_TYPE_IOACMD;
945 cmd->ioa_cb->ioarcb.resource_handle =
947 cmd->ioa_cb->ioarcb.cdb[0] = PMCRAID_IOA_SHUTDOWN;
948 cmd->ioa_cb->ioarcb.cdb[1] = PMCRAID_SHUTDOWN_NORMAL;
952 le32_to_cpu(cmd->ioa_cb->ioarcb.response_handle));
1001 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb;
1007 ioarcb->request_type = REQ_TYPE_SCSI;
1008 ioarcb->resource_handle = cpu_to_le32(PMCRAID_IOA_RES_HANDLE);
1009 ioarcb->cdb[0] = INQUIRY;
1010 ioarcb->cdb[1] = 1;
1011 ioarcb->cdb[2] = 0xD0;
1012 ioarcb->cdb[3] = (data_size >> 8) & 0xFF;
1013 ioarcb->cdb[4] = data_size & 0xFF;
1017 ioarcb->ioadl_bus_addr = cpu_to_le64((cmd->ioa_cb_bus_addr) +
1020 ioarcb->ioadl_length = cpu_to_le32(sizeof(struct pmcraid_ioadl_desc));
1021 ioarcb->ioarcb_bus_addr &= cpu_to_le64(~(0x1FULL));
1023 ioarcb->request_flags0 |= NO_LINK_DESCS;
1024 ioarcb->data_transfer_length = cpu_to_le32(data_size);
1025 ioadl = &(ioarcb->add_data.u.ioadl[0]);
1044 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb;
1060 /* Initialize ioarcb */
1061 ioarcb->request_type = REQ_TYPE_IOACMD;
1062 ioarcb->resource_handle = cpu_to_le32(PMCRAID_IOA_RES_HANDLE);
1065 ioarcb->hrrq_id = index;
1066 ioarcb->cdb[0] = PMCRAID_IDENTIFY_HRRQ;
1067 ioarcb->cdb[1] = index;
1072 pmcraid_info("HRRQ_IDENTIFY with hrrq:ioarcb:index => %llx:%llx:%x\n",
1073 hrrq_addr, ioarcb->ioarcb_bus_addr, index);
1075 memcpy(&(ioarcb->cdb[2]), &hrrq_addr, sizeof(hrrq_addr));
1076 memcpy(&(ioarcb->cdb[10]), &hrrq_size, sizeof(hrrq_size));
1100 if (cmd->ioa_cb->ioarcb.cdb[1] == PMCRAID_HCAM_CODE_CONFIG_CHANGE)
1124 struct pmcraid_ioarcb *ioarcb;
1153 ioarcb = &cmd->ioa_cb->ioarcb;
1154 ioarcb->ioadl_bus_addr = cpu_to_le64((cmd->ioa_cb_bus_addr) +
1157 ioarcb->ioadl_length = cpu_to_le32(sizeof(struct pmcraid_ioadl_desc));
1158 ioadl = ioarcb->add_data.u.ioadl;
1160 /* Initialize ioarcb */
1161 ioarcb->request_type = REQ_TYPE_HCAM;
1162 ioarcb->resource_handle = cpu_to_le32(PMCRAID_IOA_RES_HANDLE);
1163 ioarcb->cdb[0] = PMCRAID_HOST_CONTROLLED_ASYNC;
1164 ioarcb->cdb[1] = type;
1165 ioarcb->cdb[7] = (rcb_size >> 8) & 0xFF;
1166 ioarcb->cdb[8] = (rcb_size) & 0xFF;
1168 ioarcb->data_transfer_length = cpu_to_le32(rcb_size);
1206 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb;
1213 ioarcb_addr = cpu_to_be64(le64_to_cpu(cmd_to_cancel->ioa_cb->ioarcb.ioarcb_bus_addr));
1218 ioarcb->resource_handle = cmd_to_cancel->ioa_cb->ioarcb.resource_handle;
1219 ioarcb->request_type = REQ_TYPE_IOACMD;
1220 memset(ioarcb->cdb, 0, PMCRAID_MAX_CDB_LEN);
1221 ioarcb->cdb[0] = PMCRAID_ABORT_CMD;
1223 memcpy(&(ioarcb->cdb[2]), &ioarcb_addr, sizeof(ioarcb_addr));
1270 cmd->ioa_cb->ioarcb.cdb[0],
1679 cmd->ioa_cb->ioarcb.cdb[0],
1680 le32_to_cpu(cmd->ioa_cb->ioarcb.resource_handle),
2009 __le32 resp = cmd->ioa_cb->ioarcb.response_handle;
2018 cmd->ioa_cb->ioarcb.cdb[0],
2416 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb;
2417 struct pmcraid_ioadl_desc *ioadl = ioarcb->add_data.u.ioadl;
2432 memset(ioarcb->cdb, 0, PMCRAID_MAX_CDB_LEN);
2433 ioarcb->request_flags0 = (SYNC_COMPLETE |
2436 ioarcb->request_type = REQ_TYPE_SCSI;
2437 ioarcb->cdb[0] = REQUEST_SENSE;
2438 ioarcb->cdb[4] = SCSI_SENSE_BUFFERSIZE;
2440 ioarcb->ioadl_bus_addr = cpu_to_le64((cmd->ioa_cb_bus_addr) +
2443 ioarcb->ioadl_length = cpu_to_le32(sizeof(struct pmcraid_ioadl_desc));
2445 ioarcb->data_transfer_length = cpu_to_le32(SCSI_SENSE_BUFFERSIZE);
2471 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb;
2474 memset(ioarcb->cdb, 0, PMCRAID_MAX_CDB_LEN);
2475 ioarcb->request_flags0 = SYNC_OVERRIDE;
2476 ioarcb->request_type = REQ_TYPE_IOACMD;
2477 ioarcb->cdb[0] = PMCRAID_CANCEL_ALL_REQUESTS;
2480 ioarcb->cdb[1] = PMCRAID_SYNC_COMPLETE_AFTER_CANCEL;
2482 ioarcb->ioadl_bus_addr = 0;
2483 ioarcb->ioadl_length = 0;
2484 ioarcb->data_transfer_length = 0;
2485 ioarcb->ioarcb_bus_addr &= cpu_to_le64((~0x1FULL));
2701 struct pmcraid_ioarcb *ioarcb;
2741 ioarcb = &cmd->ioa_cb->ioarcb;
2742 ioarcb->resource_handle = res->cfg_entry.resource_handle;
2743 ioarcb->request_type = REQ_TYPE_IOACMD;
2744 ioarcb->cdb[0] = PMCRAID_RESET_DEVICE;
2750 ioarcb->cdb[1] = modifier;
2756 cmd->ioa_cb->ioarcb.cdb[0],
2757 le32_to_cpu(cmd->ioa_cb->ioarcb.resource_handle),
2758 le32_to_cpu(cmd->ioa_cb->ioarcb.response_handle) >> 2);
2808 le32_to_cpu(cmd->ioa_cb->ioarcb.response_handle) >> 2,
2809 cmd->ioa_cb->ioarcb.cdb[0],
2869 cmd->ioa_cb->ioarcb.cdb[0],
2870 le32_to_cpu(cmd->ioa_cb->ioarcb.response_handle) >> 2);
2876 le32_to_cpu(cancel_cmd->ioa_cb->ioarcb.response_handle) >> 2,
2877 cancel_cmd->ioa_cb->ioarcb.cdb[0],
2878 le32_to_cpu(cancel_cmd->ioa_cb->ioarcb.resource_handle));
3091 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb;
3094 if (ioarcb->add_cmd_param_length)
3095 ioadl_count = DIV_ROUND_UP(le16_to_cpu(ioarcb->add_cmd_param_length), 16);
3096 ioarcb->ioadl_length = cpu_to_le32(sizeof(struct pmcraid_ioadl_desc) * sgcount);
3098 if ((sgcount + ioadl_count) > (ARRAY_SIZE(ioarcb->add_data.u.ioadl))) {
3104 ioarcb->ioarcb_bus_addr &= cpu_to_le64(~(0x1FULL));
3105 ioarcb->ioadl_bus_addr =
3109 ioadl = &ioarcb->add_data.u.ioadl[3];
3111 ioarcb->ioadl_bus_addr =
3116 ioadl = &ioarcb->add_data.u.ioadl[ioadl_count];
3117 ioarcb->ioarcb_bus_addr |=
3130 * to firmware. This builds ioadl descriptors and sets up ioarcb fields.
3144 struct pmcraid_ioarcb *ioarcb = &(cmd->ioa_cb->ioarcb);
3166 ioarcb->request_flags0 |= TRANSFER_DIR_WRITE;
3168 ioarcb->request_flags0 |= NO_LINK_DESCS;
3169 ioarcb->data_transfer_length = cpu_to_le32(length);
3201 struct pmcraid_ioarcb *ioarcb;
3244 ioarcb = &(cmd->ioa_cb->ioarcb);
3245 memcpy(ioarcb->cdb, scsi_cmd->cmnd, scsi_cmd->cmd_len);
3246 ioarcb->resource_handle = res->cfg_entry.resource_handle;
3247 ioarcb->request_type = REQ_TYPE_SCSI;
3254 ioarcb->hrrq_id = atomic_add_return(1, &(pinstance->last_message_id)) %
3260 ioarcb->request_flags0 |= INHIBIT_UL_CHECK;
3263 ioarcb->request_flags0 |= SYNC_COMPLETE;
3267 ioarcb->request_flags0 |= NO_LINK_DESCS;
3270 ioarcb->request_flags1 |= TASK_TAG_SIMPLE;
3273 ioarcb->request_flags1 |= DELAY_AFTER_RESET;
3279 le32_to_cpu(ioarcb->response_handle) >> 2,
4853 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb;
4858 ioarcb->resource_handle = cpu_to_le32(PMCRAID_IOA_RES_HANDLE);
4859 ioarcb->request_type = REQ_TYPE_IOACMD;
4860 ioarcb->cdb[0] = PMCRAID_SET_SUPPORTED_DEVICES;
4861 ioarcb->cdb[1] = ALL_DEVICES_SUPPORTED;
4895 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb;
4910 ioarcb->request_type = REQ_TYPE_SCSI;
4911 ioarcb->resource_handle = cpu_to_le32(PMCRAID_IOA_RES_HANDLE);
4912 ioarcb->cdb[0] = PMCRAID_SCSI_SET_TIMESTAMP;
4913 ioarcb->cdb[1] = PMCRAID_SCSI_SERVICE_ACTION;
4914 memcpy(&(ioarcb->cdb[6]), &time_stamp_len, sizeof(time_stamp_len));
4916 ioarcb->ioadl_bus_addr = cpu_to_le64((cmd->ioa_cb_bus_addr) +
4919 ioarcb->ioadl_length = cpu_to_le32(sizeof(struct pmcraid_ioadl_desc));
4920 ioarcb->ioarcb_bus_addr &= cpu_to_le64(~(0x1FULL));
4922 ioarcb->request_flags0 |= NO_LINK_DESCS;
4923 ioarcb->request_flags0 |= TRANSFER_DIR_WRITE;
4924 ioarcb->data_transfer_length =
4926 ioadl = &(ioarcb->add_data.u.ioadl[0]);
5069 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb;
5082 ioarcb->request_type = REQ_TYPE_IOACMD;
5083 ioarcb->resource_handle = cpu_to_le32(PMCRAID_IOA_RES_HANDLE);
5085 ioarcb->cdb[0] = PMCRAID_QUERY_IOA_CONFIG;
5088 memcpy(&(ioarcb->cdb[10]), &cfg_table_size, sizeof(cfg_table_size));
5093 ioarcb->ioadl_bus_addr = cpu_to_le64((cmd->ioa_cb_bus_addr) +
5096 ioarcb->ioadl_length = cpu_to_le32(sizeof(struct pmcraid_ioadl_desc));
5097 ioarcb->ioarcb_bus_addr &= cpu_to_le64(~0x1FULL);
5099 ioarcb->request_flags0 |= NO_LINK_DESCS;
5100 ioarcb->data_transfer_length =
5103 ioadl = &(ioarcb->add_data.u.ioadl[0]);