Lines Matching refs:ha

32 	struct qla_hw_data *ha = vha->hw;  in qla2x00_bsg_sp_free()  local
40 dma_unmap_sg(&ha->pdev->dev, in qla2x00_bsg_sp_free()
45 dma_unmap_sg(&ha->pdev->dev, in qla2x00_bsg_sp_free()
49 dma_unmap_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list, in qla2x00_bsg_sp_free()
52 dma_unmap_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list, in qla2x00_bsg_sp_free()
123 struct qla_hw_data *ha = vha->hw; in qla24xx_proc_fcp_prio_cfg_cmd() local
128 if (!(IS_QLA24XX_TYPE(ha) || IS_QLA25XX(ha) || IS_P3P_TYPE(ha))) { in qla24xx_proc_fcp_prio_cfg_cmd()
137 if (!ha->fcp_prio_cfg && (oper != QLFC_FCP_PRIO_SET_CONFIG)) { in qla24xx_proc_fcp_prio_cfg_cmd()
143 if (ha->flags.fcp_prio_enabled) { in qla24xx_proc_fcp_prio_cfg_cmd()
144 ha->flags.fcp_prio_enabled = 0; in qla24xx_proc_fcp_prio_cfg_cmd()
145 ha->fcp_prio_cfg->attributes &= in qla24xx_proc_fcp_prio_cfg_cmd()
157 if (!ha->flags.fcp_prio_enabled) { in qla24xx_proc_fcp_prio_cfg_cmd()
158 if (ha->fcp_prio_cfg) { in qla24xx_proc_fcp_prio_cfg_cmd()
159 ha->flags.fcp_prio_enabled = 1; in qla24xx_proc_fcp_prio_cfg_cmd()
160 ha->fcp_prio_cfg->attributes |= 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()
197 if (!ha->fcp_prio_cfg) { in qla24xx_proc_fcp_prio_cfg_cmd()
198 ha->fcp_prio_cfg = vmalloc(FCP_PRIO_CFG_SIZE); in qla24xx_proc_fcp_prio_cfg_cmd()
199 if (!ha->fcp_prio_cfg) { in qla24xx_proc_fcp_prio_cfg_cmd()
209 memset(ha->fcp_prio_cfg, 0, FCP_PRIO_CFG_SIZE); 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()
217 (struct qla_fcp_prio_cfg *) ha->fcp_prio_cfg, 1)) { in qla24xx_proc_fcp_prio_cfg_cmd()
223 vfree(ha->fcp_prio_cfg); in qla24xx_proc_fcp_prio_cfg_cmd()
224 ha->fcp_prio_cfg = NULL; in qla24xx_proc_fcp_prio_cfg_cmd()
228 ha->flags.fcp_prio_enabled = 0; in qla24xx_proc_fcp_prio_cfg_cmd()
229 if (ha->fcp_prio_cfg->attributes & FCP_PRIO_ATTR_ENABLE) in qla24xx_proc_fcp_prio_cfg_cmd()
230 ha->flags.fcp_prio_enabled = 1; in qla24xx_proc_fcp_prio_cfg_cmd()
251 struct qla_hw_data *ha; in qla2x00_process_els() local
263 ha = vha->hw; in qla2x00_process_els()
268 ha = vha->hw; in qla2x00_process_els()
279 if (!IS_FWI2_CAPABLE(ha)) { in qla2x00_process_els()
336 dma_map_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list, in qla2x00_process_els()
343 rsp_sg_cnt = dma_map_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list, in qla2x00_process_els()
395 dma_unmap_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list, in qla2x00_process_els()
397 dma_unmap_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list, in qla2x00_process_els()
428 struct qla_hw_data *ha = vha->hw; in qla2x00_process_ct() local
436 dma_map_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list, in qla2x00_process_ct()
445 rsp_sg_cnt = dma_map_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list, in qla2x00_process_ct()
544 dma_unmap_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list, in qla2x00_process_ct()
546 dma_unmap_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list, in qla2x00_process_ct()
560 struct qla_hw_data *ha = vha->hw; in qla81xx_reset_loopback_mode() local
562 if (!IS_QLA81XX(ha) && !IS_QLA8031(ha) && !IS_QLA8044(ha)) in qla81xx_reset_loopback_mode()
575 ha->notify_dcbx_comp = wait; in qla81xx_reset_loopback_mode()
576 ha->notify_lb_portup_comp = wait2; in qla81xx_reset_loopback_mode()
582 ha->notify_dcbx_comp = 0; in qla81xx_reset_loopback_mode()
583 ha->notify_lb_portup_comp = 0; in qla81xx_reset_loopback_mode()
589 if (wait && !wait_for_completion_timeout(&ha->dcbx_comp, in qla81xx_reset_loopback_mode()
593 ha->notify_dcbx_comp = 0; in qla81xx_reset_loopback_mode()
594 ha->notify_lb_portup_comp = 0; in qla81xx_reset_loopback_mode()
602 !wait_for_completion_timeout(&ha->lb_portup_comp, in qla81xx_reset_loopback_mode()
606 ha->notify_lb_portup_comp = 0; in qla81xx_reset_loopback_mode()
613 ha->notify_dcbx_comp = 0; in qla81xx_reset_loopback_mode()
614 ha->notify_lb_portup_comp = 0; in qla81xx_reset_loopback_mode()
631 struct qla_hw_data *ha = vha->hw; in qla81xx_set_loopback_mode() local
633 if (!IS_QLA81XX(ha) && !IS_QLA8031(ha) && !IS_QLA8044(ha)) in qla81xx_set_loopback_mode()
645 ha->notify_dcbx_comp = 1; in qla81xx_set_loopback_mode()
650 ha->notify_dcbx_comp = 0; in qla81xx_set_loopback_mode()
658 rem_tmo = wait_for_completion_timeout(&ha->dcbx_comp, in qla81xx_set_loopback_mode()
660 if (!ha->idc_extend_tmo || rem_tmo) { in qla81xx_set_loopback_mode()
661 ha->idc_extend_tmo = 0; in qla81xx_set_loopback_mode()
664 current_tmo = ha->idc_extend_tmo * HZ; in qla81xx_set_loopback_mode()
665 ha->idc_extend_tmo = 0; in qla81xx_set_loopback_mode()
677 ha->isp_ops->fw_dump(vha, 0); in qla81xx_set_loopback_mode()
682 if (ha->flags.idc_compl_status) { in qla81xx_set_loopback_mode()
686 ha->flags.idc_compl_status = 0; in qla81xx_set_loopback_mode()
692 ha->notify_dcbx_comp = 0; in qla81xx_set_loopback_mode()
693 ha->idc_extend_tmo = 0; in qla81xx_set_loopback_mode()
704 struct qla_hw_data *ha = vha->hw; in qla2x00_process_loopback() local
724 elreq.req_sg_cnt = dma_map_sg(&ha->pdev->dev, in qla2x00_process_loopback()
734 elreq.rsp_sg_cnt = dma_map_sg(&ha->pdev->dev, in qla2x00_process_loopback()
757 req_data = dma_alloc_coherent(&ha->pdev->dev, req_data_len, in qla2x00_process_loopback()
766 rsp_data = dma_alloc_coherent(&ha->pdev->dev, rsp_data_len, in qla2x00_process_loopback()
788 (ha->current_topology == ISP_CFG_F || in qla2x00_process_loopback()
789 ((IS_QLA81XX(ha) || IS_QLA8031(ha) || IS_QLA8044(ha)) && in qla2x00_process_loopback()
799 if (IS_QLA81XX(ha) || IS_QLA8031(ha) || IS_QLA8044(ha)) { in qla2x00_process_loopback()
822 if (IS_QLA8031(ha) || IS_QLA8044(ha)) in qla2x00_process_loopback()
852 if (IS_QLA81XX(ha)) { in qla2x00_process_loopback()
878 ha->isp_ops->fw_dump(vha, 0); in qla2x00_process_loopback()
919 dma_free_coherent(&ha->pdev->dev, rsp_data_len, in qla2x00_process_loopback()
922 dma_free_coherent(&ha->pdev->dev, req_data_len, in qla2x00_process_loopback()
925 dma_unmap_sg(&ha->pdev->dev, in qla2x00_process_loopback()
929 dma_unmap_sg(&ha->pdev->dev, in qla2x00_process_loopback()
942 struct qla_hw_data *ha = vha->hw; in qla84xx_reset() local
946 if (!IS_QLA84XX(ha)) { in qla84xx_reset()
975 struct qla_hw_data *ha = vha->hw; in qla84xx_updatefw() local
986 if (!IS_QLA84XX(ha)) { in qla84xx_updatefw()
992 sg_cnt = dma_map_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list, in qla84xx_updatefw()
1010 fw_buf = dma_alloc_coherent(&ha->pdev->dev, data_len, in qla84xx_updatefw()
1022 mn = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &mn_dma); in qla84xx_updatefw()
1065 dma_pool_free(ha->s_dma_pool, mn, mn_dma); in qla84xx_updatefw()
1068 dma_free_coherent(&ha->pdev->dev, data_len, fw_buf, fw_dma); in qla84xx_updatefw()
1071 dma_unmap_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list, in qla84xx_updatefw()
1084 struct qla_hw_data *ha = vha->hw; in qla84xx_mgmt_cmd() local
1094 if (!IS_QLA84XX(ha)) { in qla84xx_mgmt_cmd()
1100 mn = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &mn_dma); in qla84xx_mgmt_cmd()
1114 sg_cnt = dma_map_sg(&ha->pdev->dev, in qla84xx_mgmt_cmd()
1137 mgmt_b = dma_alloc_coherent(&ha->pdev->dev, data_len, in qla84xx_mgmt_cmd()
1164 sg_cnt = dma_map_sg(&ha->pdev->dev, in qla84xx_mgmt_cmd()
1187 mgmt_b = dma_alloc_coherent(&ha->pdev->dev, data_len, in qla84xx_mgmt_cmd()
1257 dma_free_coherent(&ha->pdev->dev, data_len, mgmt_b, mgmt_dma); in qla84xx_mgmt_cmd()
1260 dma_unmap_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list, in qla84xx_mgmt_cmd()
1263 dma_unmap_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list, in qla84xx_mgmt_cmd()
1267 dma_pool_free(ha->s_dma_pool, mn, mn_dma); in qla84xx_mgmt_cmd()
1366 struct qla_hw_data *ha = vha->hw; in qla2x00_optrom_setup() local
1368 if (unlikely(pci_channel_offline(ha->pdev))) in qla2x00_optrom_setup()
1372 if (start > ha->optrom_size) { in qla2x00_optrom_setup()
1374 "start %d > optrom_size %d.\n", start, ha->optrom_size); in qla2x00_optrom_setup()
1378 if (ha->optrom_state != QLA_SWAITING) { in qla2x00_optrom_setup()
1380 "optrom_state %d.\n", ha->optrom_state); in qla2x00_optrom_setup()
1384 ha->optrom_region_start = start; in qla2x00_optrom_setup()
1387 if (ha->optrom_size == OPTROM_SIZE_2300 && start == 0) in qla2x00_optrom_setup()
1389 else if (start == (ha->flt_region_boot * 4) || in qla2x00_optrom_setup()
1390 start == (ha->flt_region_fw * 4)) in qla2x00_optrom_setup()
1392 else if (IS_QLA24XX_TYPE(ha) || IS_QLA25XX(ha) || in qla2x00_optrom_setup()
1393 IS_CNA_CAPABLE(ha) || IS_QLA2031(ha) || IS_QLA27XX(ha)) in qla2x00_optrom_setup()
1402 ha->optrom_region_size = start + in qla2x00_optrom_setup()
1403 bsg_job->request_payload.payload_len > ha->optrom_size ? in qla2x00_optrom_setup()
1404 ha->optrom_size - start : in qla2x00_optrom_setup()
1406 ha->optrom_state = QLA_SWRITING; in qla2x00_optrom_setup()
1408 ha->optrom_region_size = start + in qla2x00_optrom_setup()
1409 bsg_job->reply_payload.payload_len > ha->optrom_size ? in qla2x00_optrom_setup()
1410 ha->optrom_size - start : in qla2x00_optrom_setup()
1412 ha->optrom_state = QLA_SREADING; in qla2x00_optrom_setup()
1415 ha->optrom_buffer = vmalloc(ha->optrom_region_size); in qla2x00_optrom_setup()
1416 if (!ha->optrom_buffer) { in qla2x00_optrom_setup()
1419 "(%x)\n", ha->optrom_region_size); in qla2x00_optrom_setup()
1421 ha->optrom_state = QLA_SWAITING; in qla2x00_optrom_setup()
1425 memset(ha->optrom_buffer, 0, ha->optrom_region_size); in qla2x00_optrom_setup()
1434 struct qla_hw_data *ha = vha->hw; in qla2x00_read_optrom() local
1437 if (ha->flags.nic_core_reset_hdlr_active) in qla2x00_read_optrom()
1440 mutex_lock(&ha->optrom_mutex); in qla2x00_read_optrom()
1443 mutex_unlock(&ha->optrom_mutex); in qla2x00_read_optrom()
1447 ha->isp_ops->read_optrom(vha, ha->optrom_buffer, in qla2x00_read_optrom()
1448 ha->optrom_region_start, ha->optrom_region_size); in qla2x00_read_optrom()
1451 bsg_job->reply_payload.sg_cnt, ha->optrom_buffer, in qla2x00_read_optrom()
1452 ha->optrom_region_size); in qla2x00_read_optrom()
1454 bsg_job->reply->reply_payload_rcv_len = ha->optrom_region_size; in qla2x00_read_optrom()
1456 vfree(ha->optrom_buffer); in qla2x00_read_optrom()
1457 ha->optrom_buffer = NULL; in qla2x00_read_optrom()
1458 ha->optrom_state = QLA_SWAITING; in qla2x00_read_optrom()
1459 mutex_unlock(&ha->optrom_mutex); in qla2x00_read_optrom()
1469 struct qla_hw_data *ha = vha->hw; in qla2x00_update_optrom() local
1472 mutex_lock(&ha->optrom_mutex); in qla2x00_update_optrom()
1475 mutex_unlock(&ha->optrom_mutex); in qla2x00_update_optrom()
1480 ha->flags.isp82xx_no_md_cap = 1; in qla2x00_update_optrom()
1483 bsg_job->request_payload.sg_cnt, ha->optrom_buffer, in qla2x00_update_optrom()
1484 ha->optrom_region_size); in qla2x00_update_optrom()
1486 ha->isp_ops->write_optrom(vha, ha->optrom_buffer, in qla2x00_update_optrom()
1487 ha->optrom_region_start, ha->optrom_region_size); in qla2x00_update_optrom()
1490 vfree(ha->optrom_buffer); in qla2x00_update_optrom()
1491 ha->optrom_buffer = NULL; in qla2x00_update_optrom()
1492 ha->optrom_state = QLA_SWAITING; in qla2x00_update_optrom()
1493 mutex_unlock(&ha->optrom_mutex); in qla2x00_update_optrom()
1503 struct qla_hw_data *ha = vha->hw; in qla2x00_update_fru_versions() local
1510 void *sfp = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &sfp_dma); in qla2x00_update_fru_versions()
1538 dma_pool_free(ha->s_dma_pool, sfp, sfp_dma); in qla2x00_update_fru_versions()
1553 struct qla_hw_data *ha = vha->hw; in qla2x00_read_fru_status() local
1558 uint8_t *sfp = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &sfp_dma); in qla2x00_read_fru_status()
1585 dma_pool_free(ha->s_dma_pool, sfp, sfp_dma); in qla2x00_read_fru_status()
1601 struct qla_hw_data *ha = vha->hw; in qla2x00_write_fru_status() local
1606 uint8_t *sfp = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &sfp_dma); in qla2x00_write_fru_status()
1630 dma_pool_free(ha->s_dma_pool, sfp, sfp_dma); in qla2x00_write_fru_status()
1645 struct qla_hw_data *ha = vha->hw; in qla2x00_write_i2c() local
1650 uint8_t *sfp = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &sfp_dma); in qla2x00_write_i2c()
1673 dma_pool_free(ha->s_dma_pool, sfp, sfp_dma); in qla2x00_write_i2c()
1688 struct qla_hw_data *ha = vha->hw; in qla2x00_read_i2c() local
1693 uint8_t *sfp = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &sfp_dma); in qla2x00_read_i2c()
1719 dma_pool_free(ha->s_dma_pool, sfp, sfp_dma); in qla2x00_read_i2c()
1735 struct qla_hw_data *ha = vha->hw; in qla24xx_process_bidir_cmd() local
1746 if (!IS_BIDI_CAPABLE(ha)) { in qla24xx_process_bidir_cmd()
1777 if (ha->current_topology != ISP_CFG_F) { in qla24xx_process_bidir_cmd()
1785 if (ha->operating_mode != P2P) { in qla24xx_process_bidir_cmd()
1792 mutex_lock(&ha->selflogin_lock); in qla24xx_process_bidir_cmd()
1805 mutex_unlock(&ha->selflogin_lock); in qla24xx_process_bidir_cmd()
1813 mutex_unlock(&ha->selflogin_lock); in qla24xx_process_bidir_cmd()
1817 req_sg_cnt = dma_map_sg(&ha->pdev->dev, in qla24xx_process_bidir_cmd()
1827 rsp_sg_cnt = dma_map_sg(&ha->pdev->dev, in qla24xx_process_bidir_cmd()
1884 mempool_free(sp, ha->srb_mempool); in qla24xx_process_bidir_cmd()
1886 dma_unmap_sg(&ha->pdev->dev, in qla24xx_process_bidir_cmd()
1890 dma_unmap_sg(&ha->pdev->dev, in qla24xx_process_bidir_cmd()
1912 struct qla_hw_data *ha = vha->hw; in qlafx00_mgmt_cmd() local
1936 req_sg_cnt = dma_map_sg(&ha->pdev->dev, in qlafx00_mgmt_cmd()
1948 rsp_sg_cnt = dma_map_sg(&ha->pdev->dev, in qlafx00_mgmt_cmd()
2005 mempool_free(sp, ha->srb_mempool); in qlafx00_mgmt_cmd()
2016 dma_unmap_sg(&ha->pdev->dev, in qlafx00_mgmt_cmd()
2021 dma_unmap_sg(&ha->pdev->dev, in qlafx00_mgmt_cmd()
2224 struct qla_hw_data *ha = vha->hw; in qla24xx_bsg_timeout() local
2231 spin_lock_irqsave(&ha->hardware_lock, flags); in qla24xx_bsg_timeout()
2232 for (que = 0; que < ha->max_req_queues; que++) { in qla24xx_bsg_timeout()
2233 req = ha->req_q_map[que]; in qla24xx_bsg_timeout()
2245 spin_unlock_irqrestore(&ha->hardware_lock, flags); in qla24xx_bsg_timeout()
2246 if (ha->isp_ops->abort_command(sp)) { in qla24xx_bsg_timeout()
2259 spin_lock_irqsave(&ha->hardware_lock, flags); in qla24xx_bsg_timeout()
2265 spin_unlock_irqrestore(&ha->hardware_lock, flags); in qla24xx_bsg_timeout()
2271 spin_unlock_irqrestore(&ha->hardware_lock, flags); in qla24xx_bsg_timeout()