Lines Matching refs:ioarcb
596 trace_entry->op_code = ipr_cmd->ioarcb.cmd_pkt.cdb[0];
601 trace_entry->ata_op_code = ipr_cmd->ioarcb.u.add_data.u.regs.command;
603 trace_entry->res_handle = ipr_cmd->ioarcb.res_handle;
637 struct ipr_ioarcb *ioarcb = &ipr_cmd->ioarcb;
643 hrrq_id = ioarcb->cmd_pkt.hrrq_id;
644 memset(&ioarcb->cmd_pkt, 0, sizeof(struct ipr_cmd_pkt));
645 ioarcb->cmd_pkt.hrrq_id = hrrq_id;
646 ioarcb->data_transfer_length = 0;
647 ioarcb->read_data_transfer_length = 0;
648 ioarcb->ioadl_len = 0;
649 ioarcb->read_ioadl_len = 0;
652 ioarcb->u.sis64_addr_data.data_ioadl_addr =
656 ioarcb->write_ioadl_addr =
658 ioarcb->read_ioadl_addr = ioarcb->write_ioadl_addr;
941 * In the case of sis64, calculate the ioarcb size required. Then or in the
957 then use a 512 byte ioarcb */
1040 ipr_cmd->ioarcb.ioadl_len =
1042 ipr_cmd->ioarcb.data_transfer_length = cpu_to_be32(len);
1048 ipr_cmd->ioarcb.read_ioadl_len =
1050 ipr_cmd->ioarcb.read_data_transfer_length = cpu_to_be32(len);
1052 ipr_cmd->ioarcb.ioadl_len =
1054 ipr_cmd->ioarcb.data_transfer_length = cpu_to_be32(len);
1112 struct ipr_ioarcb *ioarcb;
1120 ioarcb = &ipr_cmd->ioarcb;
1122 ioarcb->res_handle = cpu_to_be32(IPR_IOA_RES_HANDLE);
1123 ioarcb->cmd_pkt.request_type = IPR_RQTYPE_HCAM;
1124 ioarcb->cmd_pkt.cdb[0] = IPR_HOST_CONTROLLED_ASYNC;
1125 ioarcb->cmd_pkt.cdb[1] = type;
1126 ioarcb->cmd_pkt.cdb[7] = (sizeof(hostrcb->hcam) >> 8) & 0xff;
1127 ioarcb->cmd_pkt.cdb[8] = sizeof(hostrcb->hcam) & 0xff;
3964 struct ipr_ioarcb *ioarcb = &ipr_cmd->ioarcb;
3971 ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_WRITE_NOT_READ;
3972 ioarcb->data_transfer_length = cpu_to_be32(sglist->buffer_len);
3974 ioarcb->ioadl_len =
3996 struct ipr_ioarcb *ioarcb = &ipr_cmd->ioarcb;
4003 ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_WRITE_NOT_READ;
4004 ioarcb->data_transfer_length = cpu_to_be32(sglist->buffer_len);
4006 ioarcb->ioadl_len =
5107 if (res && ipr_cmd->ioarcb.res_handle == res->res_handle)
5234 struct ipr_ioarcb *ioarcb;
5241 ioarcb = &ipr_cmd->ioarcb;
5242 cmd_pkt = &ioarcb->cmd_pkt;
5246 ioarcb->add_cmd_parms_offset = cpu_to_be16(sizeof(*ioarcb));
5248 regs = &ioarcb->u.add_data.u.regs;
5250 ioarcb->res_handle = res->res_handle;
5255 ioarcb->add_cmd_parms_len = cpu_to_be16(sizeof(regs->flags));
5363 if (ipr_cmd->ioarcb.res_handle == res->res_handle) {
5438 if (res->res_handle == ipr_cmd->ioarcb.res_handle) {
5487 reset_cmd->ioarcb.res_handle = ipr_cmd->ioarcb.res_handle;
5488 cmd_pkt = &reset_cmd->ioarcb.cmd_pkt;
5558 ipr_cmd->ioarcb.res_handle = res->res_handle;
5559 cmd_pkt = &ipr_cmd->ioarcb.cmd_pkt;
5941 struct ipr_ioarcb *ioarcb = &ipr_cmd->ioarcb;
5957 ioarcb->data_transfer_length = cpu_to_be32(length);
5958 ioarcb->ioadl_len =
5963 ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_WRITE_NOT_READ;
5993 struct ipr_ioarcb *ioarcb = &ipr_cmd->ioarcb;
6010 ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_WRITE_NOT_READ;
6011 ioarcb->data_transfer_length = cpu_to_be32(length);
6012 ioarcb->ioadl_len =
6016 ioarcb->read_data_transfer_length = cpu_to_be32(length);
6017 ioarcb->read_ioadl_len =
6021 if (ipr_cmd->dma_use_sg <= ARRAY_SIZE(ioarcb->u.add_data.u.ioadl)) {
6022 ioadl = ioarcb->u.add_data.u.ioadl;
6023 ioarcb->write_ioadl_addr = cpu_to_be32((ipr_cmd->dma_addr) +
6025 ioarcb->read_ioadl_addr = ioarcb->write_ioadl_addr;
6104 struct ipr_ioarcb *ioarcb = &ipr_cmd->ioarcb;
6108 memset(&ioarcb->cmd_pkt, 0, sizeof(struct ipr_cmd_pkt));
6109 ioarcb->data_transfer_length = 0;
6110 ioarcb->read_data_transfer_length = 0;
6111 ioarcb->ioadl_len = 0;
6112 ioarcb->read_ioadl_len = 0;
6117 ioarcb->u.sis64_addr_data.data_ioadl_addr =
6120 ioarcb->write_ioadl_addr =
6122 ioarcb->read_ioadl_addr = ioarcb->write_ioadl_addr;
6138 struct ipr_cmd_pkt *cmd_pkt = &ipr_cmd->ioarcb.cmd_pkt;
6209 cmd_pkt = &ipr_cmd->ioarcb.cmd_pkt;
6566 struct ipr_ioarcb *ioarcb;
6616 ioarcb = &ipr_cmd->ioarcb;
6618 memcpy(ioarcb->cmd_pkt.cdb, scsi_cmd->cmnd, scsi_cmd->cmd_len);
6624 ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_NO_ULEN_CHK;
6628 ioarcb->cmd_pkt.flags_lo |= IPR_FLAGS_LO_DELAY_AFTER_RST;
6633 ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_NO_LINK_DESC;
6635 ioarcb->cmd_pkt.flags_lo |= IPR_FLAGS_LO_ALIGNED_BFR;
6637 ioarcb->cmd_pkt.flags_lo |= IPR_FLAGS_LO_SIMPLE_TASK;
6639 ioarcb->cmd_pkt.flags_lo |= IPR_FLAGS_LO_UNTAGGED_TASK;
6644 ioarcb->cmd_pkt.request_type = IPR_RQTYPE_IOACMD;
6647 ioarcb->cmd_pkt.request_type = IPR_RQTYPE_PIPE;
6650 ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_NO_ULEN_CHK;
6674 ioarcb->res_handle = res->res_handle;
6676 ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_SYNC_COMPLETE;
6921 struct ipr_ioarcb *ioarcb = &ipr_cmd->ioarcb;
6934 ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_WRITE_NOT_READ;
6938 ioarcb->data_transfer_length = cpu_to_be32(len);
6939 ioarcb->ioadl_len =
6941 ioarcb->u.sis64_addr_data.data_ioadl_addr =
6967 struct ipr_ioarcb *ioarcb = &ipr_cmd->ioarcb;
6979 ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_WRITE_NOT_READ;
6980 ioarcb->data_transfer_length = cpu_to_be32(len);
6981 ioarcb->ioadl_len =
6985 ioarcb->read_data_transfer_length = cpu_to_be32(len);
6986 ioarcb->read_ioadl_len =
7058 struct ipr_ioarcb *ioarcb;
7078 ioarcb = &ipr_cmd->ioarcb;
7082 ioarcb->add_cmd_parms_offset = cpu_to_be16(sizeof(*ioarcb));
7084 regs = &ioarcb->u.add_data.u.regs;
7087 ioarcb->add_cmd_parms_len = cpu_to_be16(sizeof(*regs));
7092 ipr_cmd->ioarcb.res_handle = res->res_handle;
7093 ioarcb->cmd_pkt.request_type = IPR_RQTYPE_ATA_PASSTHRU;
7094 ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_NO_LINK_DESC;
7095 ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_NO_ULEN_CHK;
7105 memcpy(ioarcb->cmd_pkt.cdb, qc->cdb, IPR_MAX_CDB_LEN);
7358 struct ipr_ioarcb *ioarcb = &ipr_cmd->ioarcb;
7370 ioarcb->res_handle = cpu_to_be32(IPR_IOA_RES_HANDLE);
7371 ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_WRITE_NOT_READ;
7372 ioarcb->cmd_pkt.request_type = IPR_RQTYPE_IOACMD;
7374 ioarcb->cmd_pkt.cdb[0] = IPR_SET_SUPPORTED_DEVICES;
7375 ioarcb->cmd_pkt.cdb[1] = IPR_SET_ALL_SUPPORTED_DEVICES;
7376 ioarcb->cmd_pkt.cdb[7] = (sizeof(struct ipr_supported_device) >> 8) & 0xff;
7377 ioarcb->cmd_pkt.cdb[8] = sizeof(struct ipr_supported_device) & 0xff;
7559 struct ipr_ioarcb *ioarcb = &ipr_cmd->ioarcb;
7561 ioarcb->res_handle = res_handle;
7562 ioarcb->cmd_pkt.request_type = IPR_RQTYPE_SCSICDB;
7563 ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_WRITE_NOT_READ;
7564 ioarcb->cmd_pkt.cdb[0] = MODE_SELECT;
7565 ioarcb->cmd_pkt.cdb[1] = parm;
7566 ioarcb->cmd_pkt.cdb[4] = xfer_len;
7622 struct ipr_ioarcb *ioarcb = &ipr_cmd->ioarcb;
7624 ioarcb->res_handle = res_handle;
7625 ioarcb->cmd_pkt.cdb[0] = MODE_SENSE;
7626 ioarcb->cmd_pkt.cdb[2] = parm;
7627 ioarcb->cmd_pkt.cdb[4] = xfer_len;
7628 ioarcb->cmd_pkt.request_type = IPR_RQTYPE_SCSICDB;
7649 ipr_cmd->ioarcb.cmd_pkt.cdb[0], ioasc);
7904 struct ipr_ioarcb *ioarcb = &ipr_cmd->ioarcb;
7914 ioarcb->cmd_pkt.request_type = IPR_RQTYPE_IOACMD;
7915 ioarcb->res_handle = cpu_to_be32(IPR_IOA_RES_HANDLE);
7917 ioarcb->cmd_pkt.cdb[0] = IPR_QUERY_IOA_CONFIG;
7918 ioarcb->cmd_pkt.cdb[6] = (ioa_cfg->cfg_table_size >> 16) & 0xff;
7919 ioarcb->cmd_pkt.cdb[7] = (ioa_cfg->cfg_table_size >> 8) & 0xff;
7920 ioarcb->cmd_pkt.cdb[8] = ioa_cfg->cfg_table_size & 0xff;
7946 struct ipr_ioarcb *ioarcb = &ipr_cmd->ioarcb;
7948 ioarcb->res_handle = res_handle;
7949 ioarcb->cmd_pkt.cdb[0] = IPR_IOA_SERVICE_ACTION;
7950 ioarcb->cmd_pkt.cdb[1] = sa_code;
7951 ioarcb->cmd_pkt.request_type = IPR_RQTYPE_IOACMD;
7964 struct ipr_ioarcb *ioarcb = &ipr_cmd->ioarcb;
7977 ioarcb->cmd_pkt.cdb[2] = 0x40;
8007 struct ipr_ioarcb *ioarcb = &ipr_cmd->ioarcb;
8010 ioarcb->cmd_pkt.request_type = IPR_RQTYPE_SCSICDB;
8011 ioarcb->res_handle = cpu_to_be32(IPR_IOA_RES_HANDLE);
8013 ioarcb->cmd_pkt.cdb[0] = INQUIRY;
8014 ioarcb->cmd_pkt.cdb[1] = flags;
8015 ioarcb->cmd_pkt.cdb[2] = page;
8016 ioarcb->cmd_pkt.cdb[4] = xfer_len;
8217 struct ipr_ioarcb *ioarcb = &ipr_cmd->ioarcb;
8228 ioarcb->cmd_pkt.cdb[0] = IPR_ID_HOST_RR_Q;
8229 ioarcb->res_handle = cpu_to_be32(IPR_IOA_RES_HANDLE);
8231 ioarcb->cmd_pkt.request_type = IPR_RQTYPE_IOACMD;
8233 ioarcb->cmd_pkt.cdb[1] = 0x1;
8236 ioarcb->cmd_pkt.cdb[1] &= ~IPR_ID_HRRQ_SELE_ENABLE;
8238 ioarcb->cmd_pkt.cdb[1] |= IPR_ID_HRRQ_SELE_ENABLE;
8240 ioarcb->cmd_pkt.cdb[2] =
8242 ioarcb->cmd_pkt.cdb[3] =
8244 ioarcb->cmd_pkt.cdb[4] =
8246 ioarcb->cmd_pkt.cdb[5] =
8248 ioarcb->cmd_pkt.cdb[7] =
8250 ioarcb->cmd_pkt.cdb[8] =
8253 if (ioarcb->cmd_pkt.cdb[1] & IPR_ID_HRRQ_SELE_ENABLE)
8254 ioarcb->cmd_pkt.cdb[9] =
8258 ioarcb->cmd_pkt.cdb[10] =
8260 ioarcb->cmd_pkt.cdb[11] =
8262 ioarcb->cmd_pkt.cdb[12] =
8264 ioarcb->cmd_pkt.cdb[13] =
8268 if (ioarcb->cmd_pkt.cdb[1] & IPR_ID_HRRQ_SELE_ENABLE)
8269 ioarcb->cmd_pkt.cdb[14] =
9066 if (hcam_cmd->ioarcb.cmd_pkt.cdb[0] != IPR_HOST_CONTROLLED_ASYNC)
9069 ipr_cmd->ioarcb.res_handle = cpu_to_be32(IPR_IOA_RES_HANDLE);
9070 ipr_cmd->ioarcb.cmd_pkt.request_type = IPR_RQTYPE_IOACMD;
9071 cmd_pkt = &ipr_cmd->ioarcb.cmd_pkt;
9141 ipr_cmd->ioarcb.res_handle = cpu_to_be32(IPR_IOA_RES_HANDLE);
9142 ipr_cmd->ioarcb.cmd_pkt.request_type = IPR_RQTYPE_SCSICDB;
9143 ipr_cmd->ioarcb.cmd_pkt.cdb[0] = WRITE_BUFFER;
9144 ipr_cmd->ioarcb.cmd_pkt.cdb[1] = IPR_WR_BUF_DOWNLOAD_AND_SAVE;
9145 ipr_cmd->ioarcb.cmd_pkt.cdb[6] = (sglist->buffer_len & 0xff0000) >> 16;
9146 ipr_cmd->ioarcb.cmd_pkt.cdb[7] = (sglist->buffer_len & 0x00ff00) >> 8;
9147 ipr_cmd->ioarcb.cmd_pkt.cdb[8] = sglist->buffer_len & 0x0000ff;
9185 ipr_cmd->ioarcb.res_handle = cpu_to_be32(IPR_IOA_RES_HANDLE);
9186 ipr_cmd->ioarcb.cmd_pkt.request_type = IPR_RQTYPE_IOACMD;
9187 ipr_cmd->ioarcb.cmd_pkt.cdb[0] = IPR_IOA_SHUTDOWN;
9188 ipr_cmd->ioarcb.cmd_pkt.cdb[1] = shutdown_type;
9652 struct ipr_ioarcb *ioarcb;
9717 ioarcb = &ipr_cmd->ioarcb;
9720 ioarcb->a.ioarcb_host_pci_addr64 = cpu_to_be64(dma_addr);
9722 ioarcb->a.ioarcb_host_pci_addr = cpu_to_be32(dma_addr);
9724 ioarcb->host_response_handle = cpu_to_be32(i << 2);
9726 ioarcb->u.sis64_addr_data.data_ioadl_addr =
9728 ioarcb->u.sis64_addr_data.ioasa_host_pci_addr =
9731 ioarcb->write_ioadl_addr =
9733 ioarcb->read_ioadl_addr = ioarcb->write_ioadl_addr;
9734 ioarcb->ioasa_host_pci_addr =
9737 ioarcb->ioasa_len = cpu_to_be16(sizeof(struct ipr_ioasa));
9743 ipr_cmd->ioarcb.cmd_pkt.hrrq_id = hrrq_id;
10849 ipr_cmd->ioarcb.res_handle = cpu_to_be32(IPR_IOA_RES_HANDLE);
10850 ipr_cmd->ioarcb.cmd_pkt.request_type = IPR_RQTYPE_IOACMD;
10851 ipr_cmd->ioarcb.cmd_pkt.cdb[0] = IPR_IOA_SHUTDOWN;
10852 ipr_cmd->ioarcb.cmd_pkt.cdb[1] = IPR_SHUTDOWN_PREPARE_FOR_NORMAL;