Lines Matching refs:bsg_job

19 	struct fc_bsg_job *bsg_job = sp->u.bsg_job;  in qla2x00_bsg_job_done()  local
21 bsg_job->reply->result = res; in qla2x00_bsg_job_done()
22 bsg_job->job_done(bsg_job); in qla2x00_bsg_job_done()
31 struct fc_bsg_job *bsg_job = sp->u.bsg_job; in qla2x00_bsg_sp_free() local
37 &bsg_job->request->rqst_data.h_vendor.vendor_cmd[1]; in qla2x00_bsg_sp_free()
41 bsg_job->request_payload.sg_list, in qla2x00_bsg_sp_free()
42 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE); in qla2x00_bsg_sp_free()
46 bsg_job->reply_payload.sg_list, in qla2x00_bsg_sp_free()
47 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE); in qla2x00_bsg_sp_free()
49 dma_unmap_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list, in qla2x00_bsg_sp_free()
50 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE); in qla2x00_bsg_sp_free()
52 dma_unmap_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list, in qla2x00_bsg_sp_free()
53 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE); in qla2x00_bsg_sp_free()
119 qla24xx_proc_fcp_prio_cfg_cmd(struct fc_bsg_job *bsg_job) in qla24xx_proc_fcp_prio_cfg_cmd() argument
121 struct Scsi_Host *host = bsg_job->shost; in qla24xx_proc_fcp_prio_cfg_cmd()
134 oper = bsg_job->request->rqst_data.h_vendor.vendor_cmd[1]; in qla24xx_proc_fcp_prio_cfg_cmd()
148 bsg_job->reply->result = DID_OK; in qla24xx_proc_fcp_prio_cfg_cmd()
151 bsg_job->reply->result = (DID_ERROR << 16); in qla24xx_proc_fcp_prio_cfg_cmd()
163 bsg_job->reply->result = DID_OK; in qla24xx_proc_fcp_prio_cfg_cmd()
166 bsg_job->reply->result = (DID_ERROR << 16); in qla24xx_proc_fcp_prio_cfg_cmd()
173 len = bsg_job->reply_payload.payload_len; in qla24xx_proc_fcp_prio_cfg_cmd()
176 bsg_job->reply->result = (DID_ERROR << 16); in qla24xx_proc_fcp_prio_cfg_cmd()
180 bsg_job->reply->result = DID_OK; in qla24xx_proc_fcp_prio_cfg_cmd()
181 bsg_job->reply->reply_payload_rcv_len = in qla24xx_proc_fcp_prio_cfg_cmd()
183 bsg_job->reply_payload.sg_list, in qla24xx_proc_fcp_prio_cfg_cmd()
184 bsg_job->reply_payload.sg_cnt, ha->fcp_prio_cfg, in qla24xx_proc_fcp_prio_cfg_cmd()
190 len = bsg_job->request_payload.payload_len; in qla24xx_proc_fcp_prio_cfg_cmd()
192 bsg_job->reply->result = (DID_ERROR << 16); in qla24xx_proc_fcp_prio_cfg_cmd()
203 bsg_job->reply->result = (DID_ERROR << 16); in qla24xx_proc_fcp_prio_cfg_cmd()
210 sg_copy_to_buffer(bsg_job->request_payload.sg_list, in qla24xx_proc_fcp_prio_cfg_cmd()
211 bsg_job->request_payload.sg_cnt, ha->fcp_prio_cfg, in qla24xx_proc_fcp_prio_cfg_cmd()
218 bsg_job->reply->result = (DID_ERROR << 16); in qla24xx_proc_fcp_prio_cfg_cmd()
232 bsg_job->reply->result = DID_OK; in qla24xx_proc_fcp_prio_cfg_cmd()
240 bsg_job->job_done(bsg_job); in qla24xx_proc_fcp_prio_cfg_cmd()
245 qla2x00_process_els(struct fc_bsg_job *bsg_job) in qla2x00_process_els() argument
258 if (bsg_job->request->msgcode == FC_BSG_RPT_ELS) { in qla2x00_process_els()
259 rport = bsg_job->rport; in qla2x00_process_els()
266 host = bsg_job->shost; in qla2x00_process_els()
287 if (bsg_job->request_payload.sg_cnt > 1 || in qla2x00_process_els()
288 bsg_job->reply_payload.sg_cnt > 1) { in qla2x00_process_els()
292 bsg_job->request_payload.sg_cnt, in qla2x00_process_els()
293 bsg_job->reply_payload.sg_cnt); in qla2x00_process_els()
299 if (bsg_job->request->msgcode == FC_BSG_RPT_ELS) { in qla2x00_process_els()
325 bsg_job->request->rqst_data.h_els.port_id[0]; in qla2x00_process_els()
327 bsg_job->request->rqst_data.h_els.port_id[1]; in qla2x00_process_els()
329 bsg_job->request->rqst_data.h_els.port_id[2]; in qla2x00_process_els()
336 dma_map_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list, in qla2x00_process_els()
337 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE); in qla2x00_process_els()
343 rsp_sg_cnt = dma_map_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list, in qla2x00_process_els()
344 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE); in qla2x00_process_els()
350 if ((req_sg_cnt != bsg_job->request_payload.sg_cnt) || in qla2x00_process_els()
351 (rsp_sg_cnt != bsg_job->reply_payload.sg_cnt)) { in qla2x00_process_els()
355 "dma_reply_sg_cnt:%x.\n", bsg_job->request_payload.sg_cnt, in qla2x00_process_els()
356 req_sg_cnt, bsg_job->reply_payload.sg_cnt, rsp_sg_cnt); in qla2x00_process_els()
369 (bsg_job->request->msgcode == FC_BSG_RPT_ELS ? in qla2x00_process_els()
372 (bsg_job->request->msgcode == FC_BSG_RPT_ELS ? in qla2x00_process_els()
374 sp->u.bsg_job = bsg_job; in qla2x00_process_els()
381 bsg_job->request->rqst_data.h_els.command_code, fcport->loop_id, in qla2x00_process_els()
395 dma_unmap_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list, in qla2x00_process_els()
396 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE); in qla2x00_process_els()
397 dma_unmap_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list, in qla2x00_process_els()
398 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE); in qla2x00_process_els()
402 if (bsg_job->request->msgcode == FC_BSG_RPT_ELS) in qla2x00_process_els()
423 qla2x00_process_ct(struct fc_bsg_job *bsg_job) in qla2x00_process_ct() argument
426 struct Scsi_Host *host = bsg_job->shost; in qla2x00_process_ct()
436 dma_map_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list, in qla2x00_process_ct()
437 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE); in qla2x00_process_ct()
445 rsp_sg_cnt = dma_map_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list, in qla2x00_process_ct()
446 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE); in qla2x00_process_ct()
454 if ((req_sg_cnt != bsg_job->request_payload.sg_cnt) || in qla2x00_process_ct()
455 (rsp_sg_cnt != bsg_job->reply_payload.sg_cnt)) { in qla2x00_process_ct()
458 "dma_reply_sg_cnt: %x\n", bsg_job->request_payload.sg_cnt, in qla2x00_process_ct()
459 req_sg_cnt, bsg_job->reply_payload.sg_cnt, rsp_sg_cnt); in qla2x00_process_ct()
472 (bsg_job->request->rqst_data.h_ct.preamble_word1 & 0xFF000000) in qla2x00_process_ct()
503 fcport->d_id.b.al_pa = bsg_job->request->rqst_data.h_ct.port_id[0]; in qla2x00_process_ct()
504 fcport->d_id.b.area = bsg_job->request->rqst_data.h_ct.port_id[1]; in qla2x00_process_ct()
505 fcport->d_id.b.domain = bsg_job->request->rqst_data.h_ct.port_id[2]; in qla2x00_process_ct()
520 sp->u.bsg_job = bsg_job; in qla2x00_process_ct()
527 (bsg_job->request->rqst_data.h_ct.preamble_word2 >> 16), in qla2x00_process_ct()
544 dma_unmap_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list, in qla2x00_process_ct()
545 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE); in qla2x00_process_ct()
546 dma_unmap_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list, in qla2x00_process_ct()
547 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE); in qla2x00_process_ct()
700 qla2x00_process_loopback(struct fc_bsg_job *bsg_job) in qla2x00_process_loopback() argument
702 struct Scsi_Host *host = bsg_job->shost; in qla2x00_process_loopback()
725 bsg_job->request_payload.sg_list, bsg_job->request_payload.sg_cnt, in qla2x00_process_loopback()
735 bsg_job->reply_payload.sg_list, bsg_job->reply_payload.sg_cnt, in qla2x00_process_loopback()
745 if ((elreq.req_sg_cnt != bsg_job->request_payload.sg_cnt) || in qla2x00_process_loopback()
746 (elreq.rsp_sg_cnt != bsg_job->reply_payload.sg_cnt)) { in qla2x00_process_loopback()
751 bsg_job->request_payload.sg_cnt, elreq.req_sg_cnt, in qla2x00_process_loopback()
752 bsg_job->reply_payload.sg_cnt, elreq.rsp_sg_cnt); in qla2x00_process_loopback()
756 req_data_len = rsp_data_len = bsg_job->request_payload.payload_len; in qla2x00_process_loopback()
776 sg_copy_to_buffer(bsg_job->request_payload.sg_list, in qla2x00_process_loopback()
777 bsg_job->request_payload.sg_cnt, req_data, req_data_len); in qla2x00_process_loopback()
783 elreq.options = bsg_job->request->rqst_data.h_vendor.vendor_cmd[1]; in qla2x00_process_loopback()
785 bsg_job->request->rqst_data.h_vendor.vendor_cmd[2]; in qla2x00_process_loopback()
899 bsg_job->reply->result = (DID_ERROR << 16); in qla2x00_process_loopback()
900 bsg_job->reply->reply_payload_rcv_len = 0; in qla2x00_process_loopback()
904 bsg_job->reply->result = (DID_OK << 16); in qla2x00_process_loopback()
905 sg_copy_from_buffer(bsg_job->reply_payload.sg_list, in qla2x00_process_loopback()
906 bsg_job->reply_payload.sg_cnt, rsp_data, in qla2x00_process_loopback()
910 bsg_job->reply_len = sizeof(struct fc_bsg_reply) + in qla2x00_process_loopback()
912 fw_sts_ptr = ((uint8_t *)bsg_job->req->sense) + in qla2x00_process_loopback()
926 bsg_job->reply_payload.sg_list, in qla2x00_process_loopback()
927 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE); in qla2x00_process_loopback()
930 bsg_job->request_payload.sg_list, in qla2x00_process_loopback()
931 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE); in qla2x00_process_loopback()
933 bsg_job->job_done(bsg_job); in qla2x00_process_loopback()
938 qla84xx_reset(struct fc_bsg_job *bsg_job) in qla84xx_reset() argument
940 struct Scsi_Host *host = bsg_job->shost; in qla84xx_reset()
951 flag = bsg_job->request->rqst_data.h_vendor.vendor_cmd[1]; in qla84xx_reset()
963 bsg_job->reply->result = DID_OK; in qla84xx_reset()
964 bsg_job->job_done(bsg_job); in qla84xx_reset()
971 qla84xx_updatefw(struct fc_bsg_job *bsg_job) in qla84xx_updatefw() argument
973 struct Scsi_Host *host = bsg_job->shost; in qla84xx_updatefw()
992 sg_cnt = dma_map_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list, in qla84xx_updatefw()
993 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE); in qla84xx_updatefw()
1000 if (sg_cnt != bsg_job->request_payload.sg_cnt) { in qla84xx_updatefw()
1004 bsg_job->request_payload.sg_cnt, sg_cnt); in qla84xx_updatefw()
1009 data_len = bsg_job->request_payload.payload_len; in qla84xx_updatefw()
1019 sg_copy_to_buffer(bsg_job->request_payload.sg_list, in qla84xx_updatefw()
1020 bsg_job->request_payload.sg_cnt, fw_buf, data_len); in qla84xx_updatefw()
1030 flag = bsg_job->request->rqst_data.h_vendor.vendor_cmd[1]; in qla84xx_updatefw()
1061 bsg_job->reply_len = sizeof(struct fc_bsg_reply); in qla84xx_updatefw()
1062 bsg_job->reply->result = DID_OK; in qla84xx_updatefw()
1071 dma_unmap_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list, in qla84xx_updatefw()
1072 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE); in qla84xx_updatefw()
1075 bsg_job->job_done(bsg_job); in qla84xx_updatefw()
1080 qla84xx_mgmt_cmd(struct fc_bsg_job *bsg_job) in qla84xx_mgmt_cmd() argument
1082 struct Scsi_Host *host = bsg_job->shost; in qla84xx_mgmt_cmd()
1110 ql84_mgmt = (void *)bsg_job->request + sizeof(struct fc_bsg_request); in qla84xx_mgmt_cmd()
1115 bsg_job->reply_payload.sg_list, in qla84xx_mgmt_cmd()
1116 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE); in qla84xx_mgmt_cmd()
1126 if (sg_cnt != bsg_job->reply_payload.sg_cnt) { in qla84xx_mgmt_cmd()
1130 bsg_job->reply_payload.sg_cnt, sg_cnt); in qla84xx_mgmt_cmd()
1135 data_len = bsg_job->reply_payload.payload_len; in qla84xx_mgmt_cmd()
1165 bsg_job->request_payload.sg_list, in qla84xx_mgmt_cmd()
1166 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE); in qla84xx_mgmt_cmd()
1177 if (sg_cnt != bsg_job->request_payload.sg_cnt) { in qla84xx_mgmt_cmd()
1181 bsg_job->request_payload.sg_cnt, sg_cnt); in qla84xx_mgmt_cmd()
1186 data_len = bsg_job->request_payload.payload_len; in qla84xx_mgmt_cmd()
1196 sg_copy_to_buffer(bsg_job->request_payload.sg_list, in qla84xx_mgmt_cmd()
1197 bsg_job->request_payload.sg_cnt, mgmt_b, data_len); in qla84xx_mgmt_cmd()
1241 bsg_job->reply_len = sizeof(struct fc_bsg_reply); in qla84xx_mgmt_cmd()
1242 bsg_job->reply->result = DID_OK; in qla84xx_mgmt_cmd()
1246 bsg_job->reply->reply_payload_rcv_len = in qla84xx_mgmt_cmd()
1247 bsg_job->reply_payload.payload_len; in qla84xx_mgmt_cmd()
1249 sg_copy_from_buffer(bsg_job->reply_payload.sg_list, in qla84xx_mgmt_cmd()
1250 bsg_job->reply_payload.sg_cnt, mgmt_b, in qla84xx_mgmt_cmd()
1260 dma_unmap_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list, in qla84xx_mgmt_cmd()
1261 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE); in qla84xx_mgmt_cmd()
1263 dma_unmap_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list, in qla84xx_mgmt_cmd()
1264 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE); in qla84xx_mgmt_cmd()
1270 bsg_job->job_done(bsg_job); in qla84xx_mgmt_cmd()
1275 qla24xx_iidma(struct fc_bsg_job *bsg_job) in qla24xx_iidma() argument
1277 struct Scsi_Host *host = bsg_job->shost; in qla24xx_iidma()
1291 port_param = (void *)bsg_job->request + sizeof(struct fc_bsg_request); in qla24xx_iidma()
1343 bsg_job->reply_len = sizeof(struct fc_bsg_reply) + in qla24xx_iidma()
1346 rsp_ptr = ((uint8_t *)bsg_job->reply) + in qla24xx_iidma()
1353 bsg_job->reply->result = DID_OK; in qla24xx_iidma()
1354 bsg_job->job_done(bsg_job); in qla24xx_iidma()
1361 qla2x00_optrom_setup(struct fc_bsg_job *bsg_job, scsi_qla_host_t *vha, in qla2x00_optrom_setup() argument
1371 start = bsg_job->request->rqst_data.h_vendor.vendor_cmd[1]; in qla2x00_optrom_setup()
1398 bsg_job->request_payload.payload_len); in qla2x00_optrom_setup()
1403 bsg_job->request_payload.payload_len > ha->optrom_size ? in qla2x00_optrom_setup()
1405 bsg_job->request_payload.payload_len; in qla2x00_optrom_setup()
1409 bsg_job->reply_payload.payload_len > ha->optrom_size ? in qla2x00_optrom_setup()
1411 bsg_job->reply_payload.payload_len; in qla2x00_optrom_setup()
1430 qla2x00_read_optrom(struct fc_bsg_job *bsg_job) in qla2x00_read_optrom() argument
1432 struct Scsi_Host *host = bsg_job->shost; in qla2x00_read_optrom()
1441 rval = qla2x00_optrom_setup(bsg_job, vha, 0); in qla2x00_read_optrom()
1450 sg_copy_from_buffer(bsg_job->reply_payload.sg_list, in qla2x00_read_optrom()
1451 bsg_job->reply_payload.sg_cnt, ha->optrom_buffer, in qla2x00_read_optrom()
1454 bsg_job->reply->reply_payload_rcv_len = ha->optrom_region_size; in qla2x00_read_optrom()
1455 bsg_job->reply->result = DID_OK; in qla2x00_read_optrom()
1460 bsg_job->job_done(bsg_job); in qla2x00_read_optrom()
1465 qla2x00_update_optrom(struct fc_bsg_job *bsg_job) in qla2x00_update_optrom() argument
1467 struct Scsi_Host *host = bsg_job->shost; in qla2x00_update_optrom()
1473 rval = qla2x00_optrom_setup(bsg_job, vha, 1); in qla2x00_update_optrom()
1482 sg_copy_to_buffer(bsg_job->request_payload.sg_list, in qla2x00_update_optrom()
1483 bsg_job->request_payload.sg_cnt, ha->optrom_buffer, in qla2x00_update_optrom()
1489 bsg_job->reply->result = DID_OK; in qla2x00_update_optrom()
1494 bsg_job->job_done(bsg_job); in qla2x00_update_optrom()
1499 qla2x00_update_fru_versions(struct fc_bsg_job *bsg_job) in qla2x00_update_fru_versions() argument
1501 struct Scsi_Host *host = bsg_job->shost; in qla2x00_update_fru_versions()
1512 bsg_job->reply->reply_data.vendor_reply.vendor_rsp[0] = in qla2x00_update_fru_versions()
1517 sg_copy_to_buffer(bsg_job->request_payload.sg_list, in qla2x00_update_fru_versions()
1518 bsg_job->request_payload.sg_cnt, list, sizeof(bsg)); in qla2x00_update_fru_versions()
1528 bsg_job->reply->reply_data.vendor_reply.vendor_rsp[0] = in qla2x00_update_fru_versions()
1535 bsg_job->reply->reply_data.vendor_reply.vendor_rsp[0] = 0; in qla2x00_update_fru_versions()
1541 bsg_job->reply_len = sizeof(struct fc_bsg_reply); in qla2x00_update_fru_versions()
1542 bsg_job->reply->result = DID_OK << 16; in qla2x00_update_fru_versions()
1543 bsg_job->job_done(bsg_job); in qla2x00_update_fru_versions()
1549 qla2x00_read_fru_status(struct fc_bsg_job *bsg_job) in qla2x00_read_fru_status() argument
1551 struct Scsi_Host *host = bsg_job->shost; in qla2x00_read_fru_status()
1560 bsg_job->reply->reply_data.vendor_reply.vendor_rsp[0] = in qla2x00_read_fru_status()
1565 sg_copy_to_buffer(bsg_job->request_payload.sg_list, in qla2x00_read_fru_status()
1566 bsg_job->request_payload.sg_cnt, sr, sizeof(*sr)); in qla2x00_read_fru_status()
1574 bsg_job->reply->reply_data.vendor_reply.vendor_rsp[0] = in qla2x00_read_fru_status()
1579 sg_copy_from_buffer(bsg_job->reply_payload.sg_list, in qla2x00_read_fru_status()
1580 bsg_job->reply_payload.sg_cnt, sr, sizeof(*sr)); in qla2x00_read_fru_status()
1582 bsg_job->reply->reply_data.vendor_reply.vendor_rsp[0] = 0; in qla2x00_read_fru_status()
1588 bsg_job->reply_len = sizeof(struct fc_bsg_reply); in qla2x00_read_fru_status()
1589 bsg_job->reply->reply_payload_rcv_len = sizeof(*sr); in qla2x00_read_fru_status()
1590 bsg_job->reply->result = DID_OK << 16; in qla2x00_read_fru_status()
1591 bsg_job->job_done(bsg_job); in qla2x00_read_fru_status()
1597 qla2x00_write_fru_status(struct fc_bsg_job *bsg_job) in qla2x00_write_fru_status() argument
1599 struct Scsi_Host *host = bsg_job->shost; in qla2x00_write_fru_status()
1608 bsg_job->reply->reply_data.vendor_reply.vendor_rsp[0] = in qla2x00_write_fru_status()
1613 sg_copy_to_buffer(bsg_job->request_payload.sg_list, in qla2x00_write_fru_status()
1614 bsg_job->request_payload.sg_cnt, sr, sizeof(*sr)); in qla2x00_write_fru_status()
1622 bsg_job->reply->reply_data.vendor_reply.vendor_rsp[0] = in qla2x00_write_fru_status()
1627 bsg_job->reply->reply_data.vendor_reply.vendor_rsp[0] = 0; in qla2x00_write_fru_status()
1633 bsg_job->reply_len = sizeof(struct fc_bsg_reply); in qla2x00_write_fru_status()
1634 bsg_job->reply->result = DID_OK << 16; in qla2x00_write_fru_status()
1635 bsg_job->job_done(bsg_job); in qla2x00_write_fru_status()
1641 qla2x00_write_i2c(struct fc_bsg_job *bsg_job) in qla2x00_write_i2c() argument
1643 struct Scsi_Host *host = bsg_job->shost; in qla2x00_write_i2c()
1652 bsg_job->reply->reply_data.vendor_reply.vendor_rsp[0] = in qla2x00_write_i2c()
1657 sg_copy_to_buffer(bsg_job->request_payload.sg_list, in qla2x00_write_i2c()
1658 bsg_job->request_payload.sg_cnt, i2c, sizeof(*i2c)); in qla2x00_write_i2c()
1665 bsg_job->reply->reply_data.vendor_reply.vendor_rsp[0] = in qla2x00_write_i2c()
1670 bsg_job->reply->reply_data.vendor_reply.vendor_rsp[0] = 0; in qla2x00_write_i2c()
1676 bsg_job->reply_len = sizeof(struct fc_bsg_reply); in qla2x00_write_i2c()
1677 bsg_job->reply->result = DID_OK << 16; in qla2x00_write_i2c()
1678 bsg_job->job_done(bsg_job); in qla2x00_write_i2c()
1684 qla2x00_read_i2c(struct fc_bsg_job *bsg_job) in qla2x00_read_i2c() argument
1686 struct Scsi_Host *host = bsg_job->shost; in qla2x00_read_i2c()
1695 bsg_job->reply->reply_data.vendor_reply.vendor_rsp[0] = in qla2x00_read_i2c()
1700 sg_copy_to_buffer(bsg_job->request_payload.sg_list, in qla2x00_read_i2c()
1701 bsg_job->request_payload.sg_cnt, i2c, sizeof(*i2c)); in qla2x00_read_i2c()
1707 bsg_job->reply->reply_data.vendor_reply.vendor_rsp[0] = in qla2x00_read_i2c()
1713 sg_copy_from_buffer(bsg_job->reply_payload.sg_list, in qla2x00_read_i2c()
1714 bsg_job->reply_payload.sg_cnt, i2c, sizeof(*i2c)); in qla2x00_read_i2c()
1716 bsg_job->reply->reply_data.vendor_reply.vendor_rsp[0] = 0; in qla2x00_read_i2c()
1722 bsg_job->reply_len = sizeof(struct fc_bsg_reply); in qla2x00_read_i2c()
1723 bsg_job->reply->reply_payload_rcv_len = sizeof(*i2c); in qla2x00_read_i2c()
1724 bsg_job->reply->result = DID_OK << 16; in qla2x00_read_i2c()
1725 bsg_job->job_done(bsg_job); in qla2x00_read_i2c()
1731 qla24xx_process_bidir_cmd(struct fc_bsg_job *bsg_job) in qla24xx_process_bidir_cmd() argument
1733 struct Scsi_Host *host = bsg_job->shost; in qla24xx_process_bidir_cmd()
1793 thread_id = bsg_job->request->rqst_data.h_vendor.vendor_cmd[1]; in qla24xx_process_bidir_cmd()
1821 bsg_job->request_payload.sg_list, in qla24xx_process_bidir_cmd()
1822 bsg_job->request_payload.sg_cnt, in qla24xx_process_bidir_cmd()
1831 bsg_job->reply_payload.sg_list, bsg_job->reply_payload.sg_cnt, in qla24xx_process_bidir_cmd()
1839 if ((req_sg_cnt != bsg_job->request_payload.sg_cnt) || in qla24xx_process_bidir_cmd()
1840 (rsp_sg_cnt != bsg_job->reply_payload.sg_cnt)) { in qla24xx_process_bidir_cmd()
1845 bsg_job->request_payload.sg_cnt, req_sg_cnt, in qla24xx_process_bidir_cmd()
1846 bsg_job->reply_payload.sg_cnt, rsp_sg_cnt); in qla24xx_process_bidir_cmd()
1858 req_data_len = bsg_job->request_payload.payload_len; in qla24xx_process_bidir_cmd()
1859 rsp_data_len = bsg_job->reply_payload.payload_len; in qla24xx_process_bidir_cmd()
1872 sp->u.bsg_job = bsg_job; in qla24xx_process_bidir_cmd()
1890 bsg_job->reply_payload.sg_list, in qla24xx_process_bidir_cmd()
1891 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE); in qla24xx_process_bidir_cmd()
1894 bsg_job->request_payload.sg_list, in qla24xx_process_bidir_cmd()
1895 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE); in qla24xx_process_bidir_cmd()
1901 bsg_job->reply->reply_data.vendor_reply.vendor_rsp[0] = rval; in qla24xx_process_bidir_cmd()
1902 bsg_job->reply_len = sizeof(struct fc_bsg_reply); in qla24xx_process_bidir_cmd()
1903 bsg_job->reply->reply_payload_rcv_len = 0; in qla24xx_process_bidir_cmd()
1904 bsg_job->reply->result = (DID_OK) << 16; in qla24xx_process_bidir_cmd()
1905 bsg_job->job_done(bsg_job); in qla24xx_process_bidir_cmd()
1911 qlafx00_mgmt_cmd(struct fc_bsg_job *bsg_job) in qlafx00_mgmt_cmd() argument
1913 struct Scsi_Host *host = bsg_job->shost; in qlafx00_mgmt_cmd()
1925 &bsg_job->request->rqst_data.h_vendor.vendor_cmd[1]; in qlafx00_mgmt_cmd()
1940 bsg_job->request_payload.sg_list, in qlafx00_mgmt_cmd()
1941 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE); in qlafx00_mgmt_cmd()
1952 bsg_job->reply_payload.sg_list, in qlafx00_mgmt_cmd()
1953 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE); in qlafx00_mgmt_cmd()
1964 "dma_reply_sg_cnt: %x\n", bsg_job->request_payload.sg_cnt, in qlafx00_mgmt_cmd()
1965 req_sg_cnt, bsg_job->reply_payload.sg_cnt, rsp_sg_cnt); in qlafx00_mgmt_cmd()
1996 sp->u.bsg_job = bsg_job; in qlafx00_mgmt_cmd()
2020 bsg_job->reply_payload.sg_list, in qlafx00_mgmt_cmd()
2021 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE); in qlafx00_mgmt_cmd()
2025 bsg_job->request_payload.sg_list, in qlafx00_mgmt_cmd()
2026 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE); in qlafx00_mgmt_cmd()
2033 qla26xx_serdes_op(struct fc_bsg_job *bsg_job) in qla26xx_serdes_op() argument
2035 struct Scsi_Host *host = bsg_job->shost; in qla26xx_serdes_op()
2042 sg_copy_to_buffer(bsg_job->request_payload.sg_list, in qla26xx_serdes_op()
2043 bsg_job->request_payload.sg_cnt, &sr, sizeof(sr)); in qla26xx_serdes_op()
2048 bsg_job->reply->reply_payload_rcv_len = 0; in qla26xx_serdes_op()
2052 sg_copy_from_buffer(bsg_job->reply_payload.sg_list, in qla26xx_serdes_op()
2053 bsg_job->reply_payload.sg_cnt, &sr, sizeof(sr)); in qla26xx_serdes_op()
2054 bsg_job->reply->reply_payload_rcv_len = sizeof(sr); in qla26xx_serdes_op()
2063 bsg_job->reply->reply_data.vendor_reply.vendor_rsp[0] = in qla26xx_serdes_op()
2066 bsg_job->reply_len = sizeof(struct fc_bsg_reply); in qla26xx_serdes_op()
2067 bsg_job->reply->result = DID_OK << 16; in qla26xx_serdes_op()
2068 bsg_job->job_done(bsg_job); in qla26xx_serdes_op()
2073 qla8044_serdes_op(struct fc_bsg_job *bsg_job) in qla8044_serdes_op() argument
2075 struct Scsi_Host *host = bsg_job->shost; in qla8044_serdes_op()
2082 sg_copy_to_buffer(bsg_job->request_payload.sg_list, in qla8044_serdes_op()
2083 bsg_job->request_payload.sg_cnt, &sr, sizeof(sr)); in qla8044_serdes_op()
2088 bsg_job->reply->reply_payload_rcv_len = 0; in qla8044_serdes_op()
2092 sg_copy_from_buffer(bsg_job->reply_payload.sg_list, in qla8044_serdes_op()
2093 bsg_job->reply_payload.sg_cnt, &sr, sizeof(sr)); in qla8044_serdes_op()
2094 bsg_job->reply->reply_payload_rcv_len = sizeof(sr); in qla8044_serdes_op()
2103 bsg_job->reply->reply_data.vendor_reply.vendor_rsp[0] = in qla8044_serdes_op()
2106 bsg_job->reply_len = sizeof(struct fc_bsg_reply); in qla8044_serdes_op()
2107 bsg_job->reply->result = DID_OK << 16; in qla8044_serdes_op()
2108 bsg_job->job_done(bsg_job); in qla8044_serdes_op()
2113 qla2x00_process_vendor_specific(struct fc_bsg_job *bsg_job) in qla2x00_process_vendor_specific() argument
2115 switch (bsg_job->request->rqst_data.h_vendor.vendor_cmd[0]) { in qla2x00_process_vendor_specific()
2117 return qla2x00_process_loopback(bsg_job); in qla2x00_process_vendor_specific()
2120 return qla84xx_reset(bsg_job); in qla2x00_process_vendor_specific()
2123 return qla84xx_updatefw(bsg_job); in qla2x00_process_vendor_specific()
2126 return qla84xx_mgmt_cmd(bsg_job); in qla2x00_process_vendor_specific()
2129 return qla24xx_iidma(bsg_job); in qla2x00_process_vendor_specific()
2132 return qla24xx_proc_fcp_prio_cfg_cmd(bsg_job); in qla2x00_process_vendor_specific()
2135 return qla2x00_read_optrom(bsg_job); in qla2x00_process_vendor_specific()
2138 return qla2x00_update_optrom(bsg_job); in qla2x00_process_vendor_specific()
2141 return qla2x00_update_fru_versions(bsg_job); in qla2x00_process_vendor_specific()
2144 return qla2x00_read_fru_status(bsg_job); in qla2x00_process_vendor_specific()
2147 return qla2x00_write_fru_status(bsg_job); in qla2x00_process_vendor_specific()
2150 return qla2x00_write_i2c(bsg_job); in qla2x00_process_vendor_specific()
2153 return qla2x00_read_i2c(bsg_job); in qla2x00_process_vendor_specific()
2156 return qla24xx_process_bidir_cmd(bsg_job); in qla2x00_process_vendor_specific()
2159 return qlafx00_mgmt_cmd(bsg_job); in qla2x00_process_vendor_specific()
2162 return qla26xx_serdes_op(bsg_job); in qla2x00_process_vendor_specific()
2165 return qla8044_serdes_op(bsg_job); in qla2x00_process_vendor_specific()
2173 qla24xx_bsg_request(struct fc_bsg_job *bsg_job) in qla24xx_bsg_request() argument
2182 bsg_job->reply->reply_payload_rcv_len = 0; in qla24xx_bsg_request()
2184 if (bsg_job->request->msgcode == FC_BSG_RPT_ELS) { in qla24xx_bsg_request()
2185 rport = bsg_job->rport; in qla24xx_bsg_request()
2190 host = bsg_job->shost; in qla24xx_bsg_request()
2197 bsg_job->request->msgcode); in qla24xx_bsg_request()
2202 "Entered %s msgcode=0x%x.\n", __func__, bsg_job->request->msgcode); in qla24xx_bsg_request()
2204 switch (bsg_job->request->msgcode) { in qla24xx_bsg_request()
2207 ret = qla2x00_process_els(bsg_job); in qla24xx_bsg_request()
2210 ret = qla2x00_process_ct(bsg_job); in qla24xx_bsg_request()
2213 ret = qla2x00_process_vendor_specific(bsg_job); in qla24xx_bsg_request()
2226 qla24xx_bsg_timeout(struct fc_bsg_job *bsg_job) in qla24xx_bsg_timeout() argument
2228 scsi_qla_host_t *vha = shost_priv(bsg_job->shost); in qla24xx_bsg_timeout()
2248 && (sp->u.bsg_job == bsg_job)) { in qla24xx_bsg_timeout()
2255 bsg_job->req->errors = in qla24xx_bsg_timeout()
2256 bsg_job->reply->result = -EIO; in qla24xx_bsg_timeout()
2261 bsg_job->req->errors = in qla24xx_bsg_timeout()
2262 bsg_job->reply->result = 0; in qla24xx_bsg_timeout()
2272 bsg_job->req->errors = bsg_job->reply->result = -ENXIO; in qla24xx_bsg_timeout()