Lines Matching refs:cmd_pkt
187 * @cmd_pkt: Command type 2 IOCB
190 void qla2x00_build_scsi_iocbs_32(srb_t *sp, cmd_entry_t *cmd_pkt,
203 put_unaligned_le32(COMMAND_TYPE, &cmd_pkt->entry_type);
207 cmd_pkt->byte_count = cpu_to_le32(0);
212 cmd_pkt->control_flags |= cpu_to_le16(qla2x00_get_cmd_direction(sp));
215 avail_dsds = ARRAY_SIZE(cmd_pkt->dsd32);
216 cur_dsd = cmd_pkt->dsd32;
243 * @cmd_pkt: Command type 3 IOCB
246 void qla2x00_build_scsi_iocbs_64(srb_t *sp, cmd_entry_t *cmd_pkt,
259 put_unaligned_le32(COMMAND_A64_TYPE, &cmd_pkt->entry_type);
263 cmd_pkt->byte_count = cpu_to_le32(0);
268 cmd_pkt->control_flags |= cpu_to_le16(qla2x00_get_cmd_direction(sp));
271 avail_dsds = ARRAY_SIZE(cmd_pkt->dsd64);
272 cur_dsd = cmd_pkt->dsd64;
329 cmd_entry_t *cmd_pkt;
396 cmd_pkt = (cmd_entry_t *)req->ring_ptr;
397 cmd_pkt->handle = handle;
399 clr_ptr = (uint32_t *)cmd_pkt + 2;
401 cmd_pkt->dseg_count = cpu_to_le16(tot_dsds);
404 SET_TARGET_ID(ha, cmd_pkt->target, sp->fcport->loop_id);
405 cmd_pkt->lun = cpu_to_le16(cmd->device->lun);
406 cmd_pkt->control_flags = cpu_to_le16(CF_SIMPLE_TAG);
409 memcpy(cmd_pkt->scsi_cdb, cmd->cmnd, cmd->cmd_len);
410 cmd_pkt->byte_count = cpu_to_le32((uint32_t)scsi_bufflen(cmd));
413 ha->isp_ops->build_iocbs(sp, cmd_pkt, tot_dsds);
416 cmd_pkt->entry_count = (uint8_t)req_cnt;
583 qla24xx_build_scsi_type_6_iocbs(srb_t *sp, struct cmd_type_6 *cmd_pkt,
601 put_unaligned_le32(COMMAND_TYPE_6, &cmd_pkt->entry_type);
606 cmd_pkt->byte_count = cpu_to_le32(0);
615 cmd_pkt->control_flags = cpu_to_le16(CF_WRITE_DATA);
619 cmd_pkt->control_flags = cpu_to_le16(CF_READ_DATA);
645 &cmd_pkt->fcp_dsd.address);
646 cmd_pkt->fcp_dsd.length = cpu_to_le32(dsd_list_len);
665 cmd_pkt->control_flags |= cpu_to_le16(CF_DATA_SEG_DESCR_ENABLE);
694 * @cmd_pkt: Command type 3 IOCB
699 qla24xx_build_scsi_iocbs(srb_t *sp, struct cmd_type_7 *cmd_pkt,
713 put_unaligned_le32(COMMAND_TYPE_7, &cmd_pkt->entry_type);
717 cmd_pkt->byte_count = cpu_to_le32(0);
725 cmd_pkt->task_mgmt_flags = cpu_to_le16(TMF_WRITE_DATA);
729 cmd_pkt->task_mgmt_flags = cpu_to_le16(TMF_READ_DATA);
736 cur_dsd = &cmd_pkt->dsd;
1384 * @cmd_pkt: Command type 3 IOCB
1390 qla24xx_build_scsi_crc_2_iocbs(srb_t *sp, struct cmd_type_crc_2 *cmd_pkt,
1412 put_unaligned_le32(COMMAND_TYPE_CRC_2, &cmd_pkt->entry_type);
1420 cmd_pkt->byte_count = cpu_to_le32(0);
1424 cmd_pkt->vp_index = sp->vha->vp_idx;
1428 cmd_pkt->control_flags =
1431 cmd_pkt->control_flags =
1453 crc_ctx_pkt->handle = cmd_pkt->handle;
1460 put_unaligned_le64(crc_ctx_dma, &cmd_pkt->crc_context_address);
1461 cmd_pkt->crc_context_len = cpu_to_le16(CRC_CONTEXT_LEN_FW);
1486 cmd_pkt->fcp_cmnd_dseg_len = cpu_to_le16(fcp_cmnd_len);
1488 &cmd_pkt->fcp_cmnd_dseg_address);
1492 cmd_pkt->fcp_rsp_dseg_len = 0; /* Let response come in status iocb */
1549 cmd_pkt->byte_count = cpu_to_le32(total_bytes);
1555 cmd_pkt->byte_count = cpu_to_le32(0);
1560 cmd_pkt->control_flags |= cpu_to_le16(CF_DATA_SEG_DESCR_ENABLE);
1572 cmd_pkt->control_flags |= cpu_to_le16(CF_DIF_SEG_DESCR_ENABLE);
1599 struct cmd_type_7 *cmd_pkt;
1671 cmd_pkt = (struct cmd_type_7 *)req->ring_ptr;
1672 cmd_pkt->handle = make_handle(req->id, handle);
1676 clr_ptr = (uint32_t *)cmd_pkt + 2;
1678 cmd_pkt->dseg_count = cpu_to_le16(tot_dsds);
1681 cmd_pkt->nport_handle = cpu_to_le16(sp->fcport->loop_id);
1682 cmd_pkt->port_id[0] = sp->fcport->d_id.b.al_pa;
1683 cmd_pkt->port_id[1] = sp->fcport->d_id.b.area;
1684 cmd_pkt->port_id[2] = sp->fcport->d_id.b.domain;
1685 cmd_pkt->vp_index = sp->vha->vp_idx;
1687 int_to_scsilun(cmd->device->lun, &cmd_pkt->lun);
1688 host_to_fcp_swap((uint8_t *)&cmd_pkt->lun, sizeof(cmd_pkt->lun));
1690 cmd_pkt->task = TSK_SIMPLE;
1693 memcpy(cmd_pkt->fcp_cdb, cmd->cmnd, cmd->cmd_len);
1694 host_to_fcp_swap(cmd_pkt->fcp_cdb, sizeof(cmd_pkt->fcp_cdb));
1696 cmd_pkt->byte_count = cpu_to_le32((uint32_t)scsi_bufflen(cmd));
1699 qla24xx_build_scsi_iocbs(sp, cmd_pkt, tot_dsds, req);
1702 cmd_pkt->entry_count = (uint8_t)req_cnt;
1753 struct cmd_type_crc_2 *cmd_pkt;
1871 cmd_pkt = (struct cmd_type_crc_2 *)req->ring_ptr;
1872 cmd_pkt->handle = make_handle(req->id, handle);
1874 clr_ptr = (uint32_t *)cmd_pkt + 2;
1878 cmd_pkt->nport_handle = cpu_to_le16(sp->fcport->loop_id);
1879 cmd_pkt->port_id[0] = sp->fcport->d_id.b.al_pa;
1880 cmd_pkt->port_id[1] = sp->fcport->d_id.b.area;
1881 cmd_pkt->port_id[2] = sp->fcport->d_id.b.domain;
1883 int_to_scsilun(cmd->device->lun, &cmd_pkt->lun);
1884 host_to_fcp_swap((uint8_t *)&cmd_pkt->lun, sizeof(cmd_pkt->lun));
1887 cmd_pkt->dseg_count = cpu_to_le16(tot_dsds);
1895 cmd_pkt->entry_count = (uint8_t)req_cnt;
1897 cmd_pkt->entry_status = (uint8_t) rsp->id;
1898 cmd_pkt->timeout = cpu_to_le16(0);
1942 struct cmd_type_7 *cmd_pkt;
2017 cmd_pkt = (struct cmd_type_7 *)req->ring_ptr;
2018 cmd_pkt->handle = make_handle(req->id, handle);
2022 clr_ptr = (uint32_t *)cmd_pkt + 2;
2024 cmd_pkt->dseg_count = cpu_to_le16(tot_dsds);
2027 cmd_pkt->nport_handle = cpu_to_le16(sp->fcport->loop_id);
2028 cmd_pkt->port_id[0] = sp->fcport->d_id.b.al_pa;
2029 cmd_pkt->port_id[1] = sp->fcport->d_id.b.area;
2030 cmd_pkt->port_id[2] = sp->fcport->d_id.b.domain;
2031 cmd_pkt->vp_index = sp->fcport->vha->vp_idx;
2033 int_to_scsilun(cmd->device->lun, &cmd_pkt->lun);
2034 host_to_fcp_swap((uint8_t *)&cmd_pkt->lun, sizeof(cmd_pkt->lun));
2036 cmd_pkt->task = TSK_SIMPLE;
2039 memcpy(cmd_pkt->fcp_cdb, cmd->cmnd, cmd->cmd_len);
2040 host_to_fcp_swap(cmd_pkt->fcp_cdb, sizeof(cmd_pkt->fcp_cdb));
2042 cmd_pkt->byte_count = cpu_to_le32((uint32_t)scsi_bufflen(cmd));
2045 qla24xx_build_scsi_iocbs(sp, cmd_pkt, tot_dsds, req);
2048 cmd_pkt->entry_count = (uint8_t)req_cnt;
2100 struct cmd_type_crc_2 *cmd_pkt;
2233 cmd_pkt = (struct cmd_type_crc_2 *)req->ring_ptr;
2234 cmd_pkt->handle = make_handle(req->id, handle);
2236 clr_ptr = (uint32_t *)cmd_pkt + 2;
2240 cmd_pkt->nport_handle = cpu_to_le16(sp->fcport->loop_id);
2241 cmd_pkt->port_id[0] = sp->fcport->d_id.b.al_pa;
2242 cmd_pkt->port_id[1] = sp->fcport->d_id.b.area;
2243 cmd_pkt->port_id[2] = sp->fcport->d_id.b.domain;
2245 int_to_scsilun(cmd->device->lun, &cmd_pkt->lun);
2246 host_to_fcp_swap((uint8_t *)&cmd_pkt->lun, sizeof(cmd_pkt->lun));
2249 cmd_pkt->dseg_count = cpu_to_le16(tot_dsds);
2257 cmd_pkt->entry_count = (uint8_t)req_cnt;
2258 cmd_pkt->timeout = cpu_to_le16(0);
3336 struct cmd_type_6 *cmd_pkt;
3430 cmd_pkt = (struct cmd_type_6 *)req->ring_ptr;
3431 cmd_pkt->handle = make_handle(req->id, handle);
3435 clr_ptr = (uint32_t *)cmd_pkt + 2;
3437 cmd_pkt->dseg_count = cpu_to_le16(tot_dsds);
3440 cmd_pkt->nport_handle = cpu_to_le16(sp->fcport->loop_id);
3441 cmd_pkt->port_id[0] = sp->fcport->d_id.b.al_pa;
3442 cmd_pkt->port_id[1] = sp->fcport->d_id.b.area;
3443 cmd_pkt->port_id[2] = sp->fcport->d_id.b.domain;
3444 cmd_pkt->vp_index = sp->vha->vp_idx;
3447 if (qla24xx_build_scsi_type_6_iocbs(sp, cmd_pkt, tot_dsds))
3450 int_to_scsilun(cmd->device->lun, &cmd_pkt->lun);
3451 host_to_fcp_swap((uint8_t *)&cmd_pkt->lun, sizeof(cmd_pkt->lun));
3473 cmd_pkt->fcp_cmnd_dseg_len = cpu_to_le16(ctx->fcp_cmnd_len);
3475 &cmd_pkt->fcp_cmnd_dseg_address);
3478 cmd_pkt->byte_count = cpu_to_le32((uint32_t)scsi_bufflen(cmd));
3480 cmd_pkt->entry_count = (uint8_t)req_cnt;
3484 cmd_pkt->entry_status = (uint8_t) rsp->id;
3486 struct cmd_type_7 *cmd_pkt;
3501 cmd_pkt = (struct cmd_type_7 *)req->ring_ptr;
3502 cmd_pkt->handle = make_handle(req->id, handle);
3506 clr_ptr = (uint32_t *)cmd_pkt + 2;
3508 cmd_pkt->dseg_count = cpu_to_le16(tot_dsds);
3511 cmd_pkt->nport_handle = cpu_to_le16(sp->fcport->loop_id);
3512 cmd_pkt->port_id[0] = sp->fcport->d_id.b.al_pa;
3513 cmd_pkt->port_id[1] = sp->fcport->d_id.b.area;
3514 cmd_pkt->port_id[2] = sp->fcport->d_id.b.domain;
3515 cmd_pkt->vp_index = sp->vha->vp_idx;
3517 int_to_scsilun(cmd->device->lun, &cmd_pkt->lun);
3518 host_to_fcp_swap((uint8_t *)&cmd_pkt->lun,
3519 sizeof(cmd_pkt->lun));
3523 cmd_pkt->task |= sp->fcport->fcp_prio << 3;
3526 memcpy(cmd_pkt->fcp_cdb, cmd->cmnd, cmd->cmd_len);
3527 host_to_fcp_swap(cmd_pkt->fcp_cdb, sizeof(cmd_pkt->fcp_cdb));
3529 cmd_pkt->byte_count = cpu_to_le32((uint32_t)scsi_bufflen(cmd));
3532 qla24xx_build_scsi_iocbs(sp, cmd_pkt, tot_dsds, req);
3535 cmd_pkt->entry_count = (uint8_t)req_cnt;
3539 cmd_pkt->entry_status = (uint8_t) rsp->id;
3676 qla_nvme_ls(srb_t *sp, struct pt_ls4_request *cmd_pkt)
3681 cmd_pkt->entry_type = PT_LS4_REQUEST;
3682 cmd_pkt->entry_count = 1;
3683 cmd_pkt->control_flags = cpu_to_le16(CF_LS4_ORIGINATOR << CF_LS4_SHIFT);
3685 cmd_pkt->timeout = cpu_to_le16(nvme->u.nvme.timeout_sec);
3686 cmd_pkt->nport_handle = cpu_to_le16(sp->fcport->loop_id);
3687 cmd_pkt->vp_index = sp->fcport->vha->vp_idx;
3689 cmd_pkt->tx_dseg_count = cpu_to_le16(1);
3690 cmd_pkt->tx_byte_count = cpu_to_le32(nvme->u.nvme.cmd_len);
3691 cmd_pkt->dsd[0].length = cpu_to_le32(nvme->u.nvme.cmd_len);
3692 put_unaligned_le64(nvme->u.nvme.cmd_dma, &cmd_pkt->dsd[0].address);
3694 cmd_pkt->rx_dseg_count = cpu_to_le16(1);
3695 cmd_pkt->rx_byte_count = cpu_to_le32(nvme->u.nvme.rsp_len);
3696 cmd_pkt->dsd[1].length = cpu_to_le32(nvme->u.nvme.rsp_len);
3697 put_unaligned_le64(nvme->u.nvme.rsp_dma, &cmd_pkt->dsd[1].address);
3837 struct cmd_bidir *cmd_pkt, uint32_t tot_dsds)
3849 put_unaligned_le32(COMMAND_BIDIRECTIONAL, &cmd_pkt->entry_type);
3855 cmd_pkt->wr_dseg_count = cpu_to_le16(bsg_job->request_payload.sg_cnt);
3856 cmd_pkt->rd_dseg_count = cpu_to_le16(bsg_job->reply_payload.sg_cnt);
3857 cmd_pkt->control_flags = cpu_to_le16(BD_WRITE_DATA | BD_READ_DATA |
3861 cmd_pkt->wr_byte_count = cpu_to_le32(req_data_len);
3862 cmd_pkt->rd_byte_count = cpu_to_le32(rsp_data_len);
3863 cmd_pkt->timeout = cpu_to_le16(qla2x00_get_async_timeout(vha) + 2);
3875 cur_dsd = &cmd_pkt->fcp_dsd;
3919 cmd_pkt->entry_count = entry_count;
3932 struct cmd_bidir *cmd_pkt = NULL;
3983 cmd_pkt = (struct cmd_bidir *)req->ring_ptr;
3984 cmd_pkt->handle = make_handle(req->id, handle);
3988 clr_ptr = (uint32_t *)cmd_pkt + 2;
3992 cmd_pkt->nport_handle = cpu_to_le16(vha->self_login_loop_id);
3993 cmd_pkt->port_id[0] = vha->d_id.b.al_pa;
3994 cmd_pkt->port_id[1] = vha->d_id.b.area;
3995 cmd_pkt->port_id[2] = vha->d_id.b.domain;
3997 qla25xx_build_bidir_iocb(sp, vha, cmd_pkt, tot_dsds);
3998 cmd_pkt->entry_status = (uint8_t) rsp->id;