Lines Matching refs:sli4_hba
848 while (!list_empty(&phba->sli4_hba.sp_queue_event)) { in lpfc_sli4_free_sp_events()
851 list_remove_head(&phba->sli4_hba.sp_queue_event, in lpfc_sli4_free_sp_events()
1011 spin_lock(&phba->sli4_hba.abts_sgl_list_lock); in lpfc_hba_down_post_s4()
1013 &phba->sli4_hba.lpfc_abts_els_sgl_list, list) in lpfc_hba_down_post_s4()
1017 list_splice_init(&phba->sli4_hba.lpfc_abts_els_sgl_list, in lpfc_hba_down_post_s4()
1018 &phba->sli4_hba.lpfc_sgl_list); in lpfc_hba_down_post_s4()
1020 spin_unlock(&phba->sli4_hba.abts_sgl_list_lock); in lpfc_hba_down_post_s4()
1024 spin_lock(&phba->sli4_hba.abts_scsi_buf_list_lock); in lpfc_hba_down_post_s4()
1025 list_splice_init(&phba->sli4_hba.lpfc_abts_scsi_buf_list, in lpfc_hba_down_post_s4()
1027 spin_unlock(&phba->sli4_hba.abts_scsi_buf_list_lock); in lpfc_hba_down_post_s4()
1644 if_type = bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf); in lpfc_handle_eratt_s4()
1648 phba->sli4_hba.u.if_type0.UERRLOregaddr, in lpfc_handle_eratt_s4()
1651 phba->sli4_hba.u.if_type0.UEMASKLOregaddr, in lpfc_handle_eratt_s4()
1661 phba->sli4_hba.u.if_type2.STATUSregaddr, in lpfc_handle_eratt_s4()
1667 readl(phba->sli4_hba.u.if_type2.STATUSregaddr)); in lpfc_handle_eratt_s4()
1670 reg_err1 = readl(phba->sli4_hba.u.if_type2.ERR1regaddr); in lpfc_handle_eratt_s4()
1671 reg_err2 = readl(phba->sli4_hba.u.if_type2.ERR2regaddr); in lpfc_handle_eratt_s4()
1973 (phba->sli4_hba.pport_name_sta == in lpfc_parse_vpd()
1983 (phba->sli4_hba.pport_name_sta == in lpfc_parse_vpd()
2847 if (!phba->sli4_hba.max_cfg_param.vpi_used) in lpfc_online()
3105 if (els_xri_cnt > phba->sli4_hba.els_xri_cnt) { in lpfc_sli4_xri_sgl_update()
3107 xri_cnt = els_xri_cnt - phba->sli4_hba.els_xri_cnt; in lpfc_sli4_xri_sgl_update()
3110 "%d to %d\n", phba->sli4_hba.els_xri_cnt, in lpfc_sli4_xri_sgl_update()
3141 list_splice_init(&els_sgl_list, &phba->sli4_hba.lpfc_sgl_list); in lpfc_sli4_xri_sgl_update()
3144 } else if (els_xri_cnt < phba->sli4_hba.els_xri_cnt) { in lpfc_sli4_xri_sgl_update()
3146 xri_cnt = phba->sli4_hba.els_xri_cnt - els_xri_cnt; in lpfc_sli4_xri_sgl_update()
3149 "%d to %d\n", phba->sli4_hba.els_xri_cnt, in lpfc_sli4_xri_sgl_update()
3153 list_splice_init(&phba->sli4_hba.lpfc_sgl_list, &els_sgl_list); in lpfc_sli4_xri_sgl_update()
3168 list_splice_init(&els_sgl_list, &phba->sli4_hba.lpfc_sgl_list); in lpfc_sli4_xri_sgl_update()
3175 phba->sli4_hba.els_xri_cnt = els_xri_cnt; in lpfc_sli4_xri_sgl_update()
3181 &phba->sli4_hba.lpfc_sgl_list, list) { in lpfc_sli4_xri_sgl_update()
3191 sglq_entry->sli4_xritag = phba->sli4_hba.xri_ids[lxri]; in lpfc_sli4_xri_sgl_update()
3200 phba->sli4_hba.scsi_xri_max = phba->sli4_hba.max_cfg_param.max_xri - in lpfc_sli4_xri_sgl_update()
3206 phba->sli4_hba.scsi_xri_cnt, in lpfc_sli4_xri_sgl_update()
3207 phba->sli4_hba.scsi_xri_max); in lpfc_sli4_xri_sgl_update()
3216 if (phba->sli4_hba.scsi_xri_cnt > phba->sli4_hba.scsi_xri_max) { in lpfc_sli4_xri_sgl_update()
3218 scsi_xri_cnt = phba->sli4_hba.scsi_xri_cnt - in lpfc_sli4_xri_sgl_update()
3219 phba->sli4_hba.scsi_xri_max; in lpfc_sli4_xri_sgl_update()
3231 phba->sli4_hba.scsi_xri_cnt -= scsi_xri_cnt; in lpfc_sli4_xri_sgl_update()
3248 psb->cur_iocbq.sli4_xritag = phba->sli4_hba.xri_ids[lxri]; in lpfc_sli4_xri_sgl_update()
3317 phba->sli4_hba.pc_sli4_params.sge_supp_len-1; in lpfc_create_port()
3572 phba->sli4_hba.intr_enable = 0; in lpfc_stop_port_s4()
3936 phba->sli4_hba.link_state.speed = in lpfc_sli4_async_link_evt()
3939 phba->sli4_hba.link_state.duplex = in lpfc_sli4_async_link_evt()
3941 phba->sli4_hba.link_state.status = in lpfc_sli4_async_link_evt()
3943 phba->sli4_hba.link_state.type = in lpfc_sli4_async_link_evt()
3945 phba->sli4_hba.link_state.number = in lpfc_sli4_async_link_evt()
3947 phba->sli4_hba.link_state.fault = in lpfc_sli4_async_link_evt()
3949 phba->sli4_hba.link_state.logical_speed = in lpfc_sli4_async_link_evt()
3956 phba->sli4_hba.link_state.speed, in lpfc_sli4_async_link_evt()
3957 phba->sli4_hba.link_state.topology, in lpfc_sli4_async_link_evt()
3958 phba->sli4_hba.link_state.status, in lpfc_sli4_async_link_evt()
3959 phba->sli4_hba.link_state.type, in lpfc_sli4_async_link_evt()
3960 phba->sli4_hba.link_state.number, in lpfc_sli4_async_link_evt()
3961 phba->sli4_hba.link_state.logical_speed, in lpfc_sli4_async_link_evt()
3962 phba->sli4_hba.link_state.fault); in lpfc_sli4_async_link_evt()
4032 phba->sli4_hba.link_state.speed = in lpfc_sli4_async_fc_evt()
4035 phba->sli4_hba.link_state.duplex = LPFC_ASYNC_LINK_DUPLEX_FULL; in lpfc_sli4_async_fc_evt()
4036 phba->sli4_hba.link_state.topology = in lpfc_sli4_async_fc_evt()
4038 phba->sli4_hba.link_state.status = in lpfc_sli4_async_fc_evt()
4040 phba->sli4_hba.link_state.type = in lpfc_sli4_async_fc_evt()
4042 phba->sli4_hba.link_state.number = in lpfc_sli4_async_fc_evt()
4044 phba->sli4_hba.link_state.fault = in lpfc_sli4_async_fc_evt()
4046 phba->sli4_hba.link_state.logical_speed = in lpfc_sli4_async_fc_evt()
4052 phba->sli4_hba.link_state.speed, in lpfc_sli4_async_fc_evt()
4053 phba->sli4_hba.link_state.topology, in lpfc_sli4_async_fc_evt()
4054 phba->sli4_hba.link_state.status, in lpfc_sli4_async_fc_evt()
4055 phba->sli4_hba.link_state.type, in lpfc_sli4_async_fc_evt()
4056 phba->sli4_hba.link_state.number, in lpfc_sli4_async_fc_evt()
4057 phba->sli4_hba.link_state.logical_speed, in lpfc_sli4_async_fc_evt()
4058 phba->sli4_hba.link_state.fault); in lpfc_sli4_async_fc_evt()
4124 if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) != in lpfc_sli4_async_sli_evt()
4176 switch (phba->sli4_hba.lnk_info.lnk_no) { in lpfc_sli4_async_sli_evt()
4604 prev_ll_spd = phba->sli4_hba.link_state.logical_speed; in lpfc_sli4_async_grp5_evt()
4605 phba->sli4_hba.link_state.logical_speed = in lpfc_sli4_async_grp5_evt()
4610 phba->sli4_hba.link_state.logical_speed); in lpfc_sli4_async_grp5_evt()
4629 while (!list_empty(&phba->sli4_hba.sp_asynce_work_queue)) { in lpfc_sli4_async_event_proc()
4632 list_remove_head(&phba->sli4_hba.sp_asynce_work_queue, in lpfc_sli4_async_event_proc()
5269 spin_lock_init(&phba->sli4_hba.abts_scsi_buf_list_lock); in lpfc_sli4_driver_resource_setup()
5270 INIT_LIST_HEAD(&phba->sli4_hba.lpfc_abts_scsi_buf_list); in lpfc_sli4_driver_resource_setup()
5272 spin_lock_init(&phba->sli4_hba.abts_sgl_list_lock); in lpfc_sli4_driver_resource_setup()
5279 INIT_LIST_HEAD(&phba->sli4_hba.sp_cqe_event_pool); in lpfc_sli4_driver_resource_setup()
5281 INIT_LIST_HEAD(&phba->sli4_hba.sp_queue_event); in lpfc_sli4_driver_resource_setup()
5283 INIT_LIST_HEAD(&phba->sli4_hba.sp_asynce_work_queue); in lpfc_sli4_driver_resource_setup()
5285 INIT_LIST_HEAD(&phba->sli4_hba.sp_fcp_xri_aborted_work_queue); in lpfc_sli4_driver_resource_setup()
5287 INIT_LIST_HEAD(&phba->sli4_hba.sp_els_xri_aborted_work_queue); in lpfc_sli4_driver_resource_setup()
5289 INIT_LIST_HEAD(&phba->sli4_hba.sp_unsol_work_queue); in lpfc_sli4_driver_resource_setup()
5292 INIT_LIST_HEAD(&phba->sli4_hba.lpfc_rpi_blk_list); in lpfc_sli4_driver_resource_setup()
5293 INIT_LIST_HEAD(&phba->sli4_hba.lpfc_xri_blk_list); in lpfc_sli4_driver_resource_setup()
5294 INIT_LIST_HEAD(&phba->sli4_hba.lpfc_vfi_blk_list); in lpfc_sli4_driver_resource_setup()
5307 if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) == in lpfc_sli4_driver_resource_setup()
5334 if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) == in lpfc_sli4_driver_resource_setup()
5358 phba->sli4_hba.pc_sli4_params.supported = 1; in lpfc_sli4_driver_resource_setup()
5365 if (phba->sli4_hba.pc_sli4_params.supported) in lpfc_sli4_driver_resource_setup()
5380 if (phba->sli4_hba.extents_in_use && in lpfc_sli4_driver_resource_setup()
5381 phba->sli4_hba.rpi_hdrs_in_use) { in lpfc_sli4_driver_resource_setup()
5434 phba->sli4_hba.fcp_eq_hdl = in lpfc_sli4_driver_resource_setup()
5438 if (!phba->sli4_hba.fcp_eq_hdl) { in lpfc_sli4_driver_resource_setup()
5446 phba->sli4_hba.msix_entries = kzalloc((sizeof(struct msix_entry) * in lpfc_sli4_driver_resource_setup()
5449 if (!phba->sli4_hba.msix_entries) { in lpfc_sli4_driver_resource_setup()
5457 phba->sli4_hba.cpu_map = kzalloc((sizeof(struct lpfc_vector_map_info) * in lpfc_sli4_driver_resource_setup()
5458 phba->sli4_hba.num_present_cpu), in lpfc_sli4_driver_resource_setup()
5460 if (!phba->sli4_hba.cpu_map) { in lpfc_sli4_driver_resource_setup()
5474 kfree(phba->sli4_hba.cpu_map); in lpfc_sli4_driver_resource_setup()
5483 cpup = phba->sli4_hba.cpu_map; in lpfc_sli4_driver_resource_setup()
5485 for (i = 0; i < phba->sli4_hba.num_present_cpu; i++) { in lpfc_sli4_driver_resource_setup()
5512 kfree(phba->sli4_hba.msix_entries); in lpfc_sli4_driver_resource_setup()
5514 kfree(phba->sli4_hba.fcp_eq_hdl); in lpfc_sli4_driver_resource_setup()
5543 kfree(phba->sli4_hba.cpu_map); in lpfc_sli4_driver_resource_unset()
5544 phba->sli4_hba.num_present_cpu = 0; in lpfc_sli4_driver_resource_unset()
5545 phba->sli4_hba.num_online_cpu = 0; in lpfc_sli4_driver_resource_unset()
5546 phba->sli4_hba.curr_disp_cpu = 0; in lpfc_sli4_driver_resource_unset()
5549 kfree(phba->sli4_hba.msix_entries); in lpfc_sli4_driver_resource_unset()
5552 kfree(phba->sli4_hba.fcp_eq_hdl); in lpfc_sli4_driver_resource_unset()
5829 list_splice_init(&phba->sli4_hba.lpfc_sgl_list, &sglq_list); in lpfc_free_els_sgl_list()
5849 size *= phba->sli4_hba.max_cfg_param.max_xri; in lpfc_init_active_sgl_array()
5851 phba->sli4_hba.lpfc_sglq_active_list = in lpfc_init_active_sgl_array()
5853 if (!phba->sli4_hba.lpfc_sglq_active_list) in lpfc_init_active_sgl_array()
5869 kfree(phba->sli4_hba.lpfc_sglq_active_list); in lpfc_free_active_sgl()
5884 INIT_LIST_HEAD(&phba->sli4_hba.lpfc_sgl_list); in lpfc_init_sgl_list()
5885 INIT_LIST_HEAD(&phba->sli4_hba.lpfc_abts_els_sgl_list); in lpfc_init_sgl_list()
5888 phba->sli4_hba.els_xri_cnt = 0; in lpfc_init_sgl_list()
5891 phba->sli4_hba.scsi_xri_cnt = 0; in lpfc_init_sgl_list()
5914 INIT_LIST_HEAD(&phba->sli4_hba.lpfc_rpi_hdr_list); in lpfc_sli4_init_rpi_hdrs()
5915 if (!phba->sli4_hba.rpi_hdrs_in_use) in lpfc_sli4_init_rpi_hdrs()
5917 if (phba->sli4_hba.extents_in_use) in lpfc_sli4_init_rpi_hdrs()
5957 if (!phba->sli4_hba.rpi_hdrs_in_use) in lpfc_sli4_create_rpi_hdr()
5959 if (phba->sli4_hba.extents_in_use) in lpfc_sli4_create_rpi_hdr()
5963 rpi_limit = phba->sli4_hba.max_cfg_param.rpi_base + in lpfc_sli4_create_rpi_hdr()
5964 phba->sli4_hba.max_cfg_param.max_rpi - 1; in lpfc_sli4_create_rpi_hdr()
5972 curr_rpi_range = phba->sli4_hba.next_rpi; in lpfc_sli4_create_rpi_hdr()
6020 list_add_tail(&rpi_hdr->list, &phba->sli4_hba.lpfc_rpi_hdr_list); in lpfc_sli4_create_rpi_hdr()
6026 phba->sli4_hba.next_rpi += rpi_count; in lpfc_sli4_create_rpi_hdr()
6052 if (!phba->sli4_hba.rpi_hdrs_in_use) in lpfc_sli4_remove_rpi_hdrs()
6056 &phba->sli4_hba.lpfc_rpi_hdr_list, list) { in lpfc_sli4_remove_rpi_hdrs()
6065 phba->sli4_hba.next_rpi = 0; in lpfc_sli4_remove_rpi_hdrs()
6494 if (!phba->sli4_hba.PSMPHRregaddr) in lpfc_sli4_post_status_check()
6499 if (lpfc_readl(phba->sli4_hba.PSMPHRregaddr, in lpfc_sli4_post_status_check()
6536 &phba->sli4_hba.sli_intf), in lpfc_sli4_post_status_check()
6538 &phba->sli4_hba.sli_intf), in lpfc_sli4_post_status_check()
6540 &phba->sli4_hba.sli_intf), in lpfc_sli4_post_status_check()
6542 &phba->sli4_hba.sli_intf), in lpfc_sli4_post_status_check()
6544 &phba->sli4_hba.sli_intf), in lpfc_sli4_post_status_check()
6546 &phba->sli4_hba.sli_intf)); in lpfc_sli4_post_status_check()
6553 &phba->sli4_hba.sli_intf); in lpfc_sli4_post_status_check()
6556 phba->sli4_hba.ue_mask_lo = in lpfc_sli4_post_status_check()
6557 readl(phba->sli4_hba.u.if_type0.UEMASKLOregaddr); in lpfc_sli4_post_status_check()
6558 phba->sli4_hba.ue_mask_hi = in lpfc_sli4_post_status_check()
6559 readl(phba->sli4_hba.u.if_type0.UEMASKHIregaddr); in lpfc_sli4_post_status_check()
6561 readl(phba->sli4_hba.u.if_type0.UERRLOregaddr); in lpfc_sli4_post_status_check()
6563 readl(phba->sli4_hba.u.if_type0.UERRHIregaddr); in lpfc_sli4_post_status_check()
6564 if ((~phba->sli4_hba.ue_mask_lo & uerrlo_reg.word0) || in lpfc_sli4_post_status_check()
6565 (~phba->sli4_hba.ue_mask_hi & uerrhi_reg.word0)) { in lpfc_sli4_post_status_check()
6575 phba->sli4_hba.ue_mask_lo, in lpfc_sli4_post_status_check()
6576 phba->sli4_hba.ue_mask_hi); in lpfc_sli4_post_status_check()
6582 if (lpfc_readl(phba->sli4_hba.u.if_type2.STATUSregaddr, in lpfc_sli4_post_status_check()
6587 readl(phba->sli4_hba.u.if_type2. in lpfc_sli4_post_status_check()
6590 readl(phba->sli4_hba.u.if_type2. in lpfc_sli4_post_status_check()
6625 phba->sli4_hba.u.if_type0.UERRLOregaddr = in lpfc_sli4_bar0_register_memmap()
6626 phba->sli4_hba.conf_regs_memmap_p + LPFC_UERR_STATUS_LO; in lpfc_sli4_bar0_register_memmap()
6627 phba->sli4_hba.u.if_type0.UERRHIregaddr = in lpfc_sli4_bar0_register_memmap()
6628 phba->sli4_hba.conf_regs_memmap_p + LPFC_UERR_STATUS_HI; in lpfc_sli4_bar0_register_memmap()
6629 phba->sli4_hba.u.if_type0.UEMASKLOregaddr = in lpfc_sli4_bar0_register_memmap()
6630 phba->sli4_hba.conf_regs_memmap_p + LPFC_UE_MASK_LO; in lpfc_sli4_bar0_register_memmap()
6631 phba->sli4_hba.u.if_type0.UEMASKHIregaddr = in lpfc_sli4_bar0_register_memmap()
6632 phba->sli4_hba.conf_regs_memmap_p + LPFC_UE_MASK_HI; in lpfc_sli4_bar0_register_memmap()
6633 phba->sli4_hba.SLIINTFregaddr = in lpfc_sli4_bar0_register_memmap()
6634 phba->sli4_hba.conf_regs_memmap_p + LPFC_SLI_INTF; in lpfc_sli4_bar0_register_memmap()
6637 phba->sli4_hba.u.if_type2.ERR1regaddr = in lpfc_sli4_bar0_register_memmap()
6638 phba->sli4_hba.conf_regs_memmap_p + in lpfc_sli4_bar0_register_memmap()
6640 phba->sli4_hba.u.if_type2.ERR2regaddr = in lpfc_sli4_bar0_register_memmap()
6641 phba->sli4_hba.conf_regs_memmap_p + in lpfc_sli4_bar0_register_memmap()
6643 phba->sli4_hba.u.if_type2.CTRLregaddr = in lpfc_sli4_bar0_register_memmap()
6644 phba->sli4_hba.conf_regs_memmap_p + in lpfc_sli4_bar0_register_memmap()
6646 phba->sli4_hba.u.if_type2.STATUSregaddr = in lpfc_sli4_bar0_register_memmap()
6647 phba->sli4_hba.conf_regs_memmap_p + in lpfc_sli4_bar0_register_memmap()
6649 phba->sli4_hba.SLIINTFregaddr = in lpfc_sli4_bar0_register_memmap()
6650 phba->sli4_hba.conf_regs_memmap_p + LPFC_SLI_INTF; in lpfc_sli4_bar0_register_memmap()
6651 phba->sli4_hba.PSMPHRregaddr = in lpfc_sli4_bar0_register_memmap()
6652 phba->sli4_hba.conf_regs_memmap_p + in lpfc_sli4_bar0_register_memmap()
6654 phba->sli4_hba.RQDBregaddr = in lpfc_sli4_bar0_register_memmap()
6655 phba->sli4_hba.conf_regs_memmap_p + in lpfc_sli4_bar0_register_memmap()
6657 phba->sli4_hba.WQDBregaddr = in lpfc_sli4_bar0_register_memmap()
6658 phba->sli4_hba.conf_regs_memmap_p + in lpfc_sli4_bar0_register_memmap()
6660 phba->sli4_hba.EQCQDBregaddr = in lpfc_sli4_bar0_register_memmap()
6661 phba->sli4_hba.conf_regs_memmap_p + LPFC_EQCQ_DOORBELL; in lpfc_sli4_bar0_register_memmap()
6662 phba->sli4_hba.MQDBregaddr = in lpfc_sli4_bar0_register_memmap()
6663 phba->sli4_hba.conf_regs_memmap_p + LPFC_MQ_DOORBELL; in lpfc_sli4_bar0_register_memmap()
6664 phba->sli4_hba.BMBXregaddr = in lpfc_sli4_bar0_register_memmap()
6665 phba->sli4_hba.conf_regs_memmap_p + LPFC_BMBX; in lpfc_sli4_bar0_register_memmap()
6686 phba->sli4_hba.PSMPHRregaddr = phba->sli4_hba.ctrl_regs_memmap_p + in lpfc_sli4_bar1_register_memmap()
6688 phba->sli4_hba.ISRregaddr = phba->sli4_hba.ctrl_regs_memmap_p + in lpfc_sli4_bar1_register_memmap()
6690 phba->sli4_hba.IMRregaddr = phba->sli4_hba.ctrl_regs_memmap_p + in lpfc_sli4_bar1_register_memmap()
6692 phba->sli4_hba.ISCRregaddr = phba->sli4_hba.ctrl_regs_memmap_p + in lpfc_sli4_bar1_register_memmap()
6712 phba->sli4_hba.RQDBregaddr = (phba->sli4_hba.drbl_regs_memmap_p + in lpfc_sli4_bar2_register_memmap()
6715 phba->sli4_hba.WQDBregaddr = (phba->sli4_hba.drbl_regs_memmap_p + in lpfc_sli4_bar2_register_memmap()
6718 phba->sli4_hba.EQCQDBregaddr = (phba->sli4_hba.drbl_regs_memmap_p + in lpfc_sli4_bar2_register_memmap()
6720 phba->sli4_hba.MQDBregaddr = (phba->sli4_hba.drbl_regs_memmap_p + in lpfc_sli4_bar2_register_memmap()
6722 phba->sli4_hba.BMBXregaddr = (phba->sli4_hba.drbl_regs_memmap_p + in lpfc_sli4_bar2_register_memmap()
6774 phba->sli4_hba.bmbx.dmabuf = dmabuf; in lpfc_create_bootstrap_mbox()
6775 phba->sli4_hba.bmbx.bmbx_size = bmbx_size; in lpfc_create_bootstrap_mbox()
6777 phba->sli4_hba.bmbx.avirt = PTR_ALIGN(dmabuf->virt, in lpfc_create_bootstrap_mbox()
6779 phba->sli4_hba.bmbx.aphys = ALIGN(dmabuf->phys, in lpfc_create_bootstrap_mbox()
6790 dma_address = &phba->sli4_hba.bmbx.dma_address; in lpfc_create_bootstrap_mbox()
6791 phys_addr = (uint64_t)phba->sli4_hba.bmbx.aphys; in lpfc_create_bootstrap_mbox()
6796 pa_addr = (uint32_t) ((phba->sli4_hba.bmbx.aphys >> 4) & 0x3fffffff); in lpfc_create_bootstrap_mbox()
6817 phba->sli4_hba.bmbx.bmbx_size, in lpfc_destroy_bootstrap_mbox()
6818 phba->sli4_hba.bmbx.dmabuf->virt, in lpfc_destroy_bootstrap_mbox()
6819 phba->sli4_hba.bmbx.dmabuf->phys); in lpfc_destroy_bootstrap_mbox()
6821 kfree(phba->sli4_hba.bmbx.dmabuf); in lpfc_destroy_bootstrap_mbox()
6822 memset(&phba->sli4_hba.bmbx, 0, sizeof(struct lpfc_bmbx)); in lpfc_destroy_bootstrap_mbox()
6872 phba->sli4_hba.lnk_info.lnk_dv = LPFC_LNK_DAT_VAL; in lpfc_sli4_read_config()
6873 phba->sli4_hba.lnk_info.lnk_tp = in lpfc_sli4_read_config()
6875 phba->sli4_hba.lnk_info.lnk_no = in lpfc_sli4_read_config()
6879 phba->sli4_hba.lnk_info.lnk_tp, in lpfc_sli4_read_config()
6880 phba->sli4_hba.lnk_info.lnk_no); in lpfc_sli4_read_config()
6885 phba->sli4_hba.extents_in_use = in lpfc_sli4_read_config()
6887 phba->sli4_hba.max_cfg_param.max_xri = in lpfc_sli4_read_config()
6889 phba->sli4_hba.max_cfg_param.xri_base = in lpfc_sli4_read_config()
6891 phba->sli4_hba.max_cfg_param.max_vpi = in lpfc_sli4_read_config()
6893 phba->sli4_hba.max_cfg_param.vpi_base = in lpfc_sli4_read_config()
6895 phba->sli4_hba.max_cfg_param.max_rpi = in lpfc_sli4_read_config()
6897 phba->sli4_hba.max_cfg_param.rpi_base = in lpfc_sli4_read_config()
6899 phba->sli4_hba.max_cfg_param.max_vfi = in lpfc_sli4_read_config()
6901 phba->sli4_hba.max_cfg_param.vfi_base = in lpfc_sli4_read_config()
6903 phba->sli4_hba.max_cfg_param.max_fcfi = in lpfc_sli4_read_config()
6905 phba->sli4_hba.max_cfg_param.max_eq = in lpfc_sli4_read_config()
6907 phba->sli4_hba.max_cfg_param.max_rq = in lpfc_sli4_read_config()
6909 phba->sli4_hba.max_cfg_param.max_wq = in lpfc_sli4_read_config()
6911 phba->sli4_hba.max_cfg_param.max_cq = in lpfc_sli4_read_config()
6914 phba->sli4_hba.next_xri = phba->sli4_hba.max_cfg_param.xri_base; in lpfc_sli4_read_config()
6915 phba->vpi_base = phba->sli4_hba.max_cfg_param.vpi_base; in lpfc_sli4_read_config()
6916 phba->vfi_base = phba->sli4_hba.max_cfg_param.vfi_base; in lpfc_sli4_read_config()
6917 phba->max_vpi = (phba->sli4_hba.max_cfg_param.max_vpi > 0) ? in lpfc_sli4_read_config()
6918 (phba->sli4_hba.max_cfg_param.max_vpi - 1) : 0; in lpfc_sli4_read_config()
6927 phba->sli4_hba.extents_in_use, in lpfc_sli4_read_config()
6928 phba->sli4_hba.max_cfg_param.xri_base, in lpfc_sli4_read_config()
6929 phba->sli4_hba.max_cfg_param.max_xri, in lpfc_sli4_read_config()
6930 phba->sli4_hba.max_cfg_param.vpi_base, in lpfc_sli4_read_config()
6931 phba->sli4_hba.max_cfg_param.max_vpi, in lpfc_sli4_read_config()
6932 phba->sli4_hba.max_cfg_param.vfi_base, in lpfc_sli4_read_config()
6933 phba->sli4_hba.max_cfg_param.max_vfi, in lpfc_sli4_read_config()
6934 phba->sli4_hba.max_cfg_param.rpi_base, in lpfc_sli4_read_config()
6935 phba->sli4_hba.max_cfg_param.max_rpi, in lpfc_sli4_read_config()
6936 phba->sli4_hba.max_cfg_param.max_fcfi); in lpfc_sli4_read_config()
6943 length = phba->sli4_hba.max_cfg_param.max_xri - in lpfc_sli4_read_config()
6952 if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) != in lpfc_sli4_read_config()
6992 phba->sli4_hba.iov.pf_number = in lpfc_sli4_read_config()
6994 phba->sli4_hba.iov.vf_number = in lpfc_sli4_read_config()
7003 "vf_number:%d\n", phba->sli4_hba.iov.pf_number, in lpfc_sli4_read_config()
7004 phba->sli4_hba.iov.vf_number); in lpfc_sli4_read_config()
7037 if_type = bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf); in lpfc_setup_endian_order()
7108 phba->sli4_hba.num_online_cpu = i; in lpfc_sli4_queue_verify()
7109 phba->sli4_hba.num_present_cpu = lpfc_present_cpu; in lpfc_sli4_queue_verify()
7110 phba->sli4_hba.curr_disp_cpu = 0; in lpfc_sli4_queue_verify()
7122 phba->sli4_hba.max_cfg_param.max_eq) { in lpfc_sli4_queue_verify()
7123 if (phba->sli4_hba.max_cfg_param.max_eq < in lpfc_sli4_queue_verify()
7129 phba->sli4_hba.max_cfg_param.max_eq, in lpfc_sli4_queue_verify()
7137 phba->sli4_hba.max_cfg_param.max_eq); in lpfc_sli4_queue_verify()
7138 cfg_fcp_io_channel = phba->sli4_hba.max_cfg_param.max_eq - in lpfc_sli4_queue_verify()
7146 phba->sli4_hba.eq_esize = LPFC_EQE_SIZE_4B; in lpfc_sli4_queue_verify()
7147 phba->sli4_hba.eq_ecount = LPFC_EQE_DEF_COUNT; in lpfc_sli4_queue_verify()
7150 phba->sli4_hba.cq_esize = LPFC_CQE_SIZE; in lpfc_sli4_queue_verify()
7151 phba->sli4_hba.cq_ecount = LPFC_CQE_DEF_COUNT; in lpfc_sli4_queue_verify()
7184 phba->sli4_hba.mq_esize = LPFC_MQE_SIZE; in lpfc_sli4_queue_create()
7185 phba->sli4_hba.mq_ecount = LPFC_MQE_DEF_COUNT; in lpfc_sli4_queue_create()
7186 phba->sli4_hba.wq_esize = LPFC_WQE_SIZE; in lpfc_sli4_queue_create()
7187 phba->sli4_hba.wq_ecount = LPFC_WQE_DEF_COUNT; in lpfc_sli4_queue_create()
7188 phba->sli4_hba.rq_esize = LPFC_RQE_SIZE; in lpfc_sli4_queue_create()
7189 phba->sli4_hba.rq_ecount = LPFC_RQE_DEF_COUNT; in lpfc_sli4_queue_create()
7191 phba->sli4_hba.hba_eq = kzalloc((sizeof(struct lpfc_queue *) * in lpfc_sli4_queue_create()
7193 if (!phba->sli4_hba.hba_eq) { in lpfc_sli4_queue_create()
7200 phba->sli4_hba.fcp_cq = kzalloc((sizeof(struct lpfc_queue *) * in lpfc_sli4_queue_create()
7202 if (!phba->sli4_hba.fcp_cq) { in lpfc_sli4_queue_create()
7209 phba->sli4_hba.fcp_wq = kzalloc((sizeof(struct lpfc_queue *) * in lpfc_sli4_queue_create()
7211 if (!phba->sli4_hba.fcp_wq) { in lpfc_sli4_queue_create()
7223 phba->sli4_hba.fcp_cq_map = kzalloc((sizeof(uint16_t) * in lpfc_sli4_queue_create()
7225 if (!phba->sli4_hba.fcp_cq_map) { in lpfc_sli4_queue_create()
7239 qdesc = lpfc_sli4_queue_alloc(phba, phba->sli4_hba.eq_esize, in lpfc_sli4_queue_create()
7240 phba->sli4_hba.eq_ecount); in lpfc_sli4_queue_create()
7246 phba->sli4_hba.hba_eq[idx] = qdesc; in lpfc_sli4_queue_create()
7249 qdesc = lpfc_sli4_queue_alloc(phba, phba->sli4_hba.cq_esize, in lpfc_sli4_queue_create()
7250 phba->sli4_hba.cq_ecount); in lpfc_sli4_queue_create()
7257 phba->sli4_hba.fcp_cq[idx] = qdesc; in lpfc_sli4_queue_create()
7260 qdesc = lpfc_sli4_queue_alloc(phba, phba->sli4_hba.wq_esize, in lpfc_sli4_queue_create()
7261 phba->sli4_hba.wq_ecount); in lpfc_sli4_queue_create()
7268 phba->sli4_hba.fcp_wq[idx] = qdesc; in lpfc_sli4_queue_create()
7277 qdesc = lpfc_sli4_queue_alloc(phba, phba->sli4_hba.cq_esize, in lpfc_sli4_queue_create()
7278 phba->sli4_hba.cq_ecount); in lpfc_sli4_queue_create()
7284 phba->sli4_hba.mbx_cq = qdesc; in lpfc_sli4_queue_create()
7287 qdesc = lpfc_sli4_queue_alloc(phba, phba->sli4_hba.cq_esize, in lpfc_sli4_queue_create()
7288 phba->sli4_hba.cq_ecount); in lpfc_sli4_queue_create()
7294 phba->sli4_hba.els_cq = qdesc; in lpfc_sli4_queue_create()
7303 qdesc = lpfc_sli4_queue_alloc(phba, phba->sli4_hba.mq_esize, in lpfc_sli4_queue_create()
7304 phba->sli4_hba.mq_ecount); in lpfc_sli4_queue_create()
7310 phba->sli4_hba.mbx_wq = qdesc; in lpfc_sli4_queue_create()
7317 qdesc = lpfc_sli4_queue_alloc(phba, phba->sli4_hba.wq_esize, in lpfc_sli4_queue_create()
7318 phba->sli4_hba.wq_ecount); in lpfc_sli4_queue_create()
7324 phba->sli4_hba.els_wq = qdesc; in lpfc_sli4_queue_create()
7331 qdesc = lpfc_sli4_queue_alloc(phba, phba->sli4_hba.rq_esize, in lpfc_sli4_queue_create()
7332 phba->sli4_hba.rq_ecount); in lpfc_sli4_queue_create()
7338 phba->sli4_hba.hdr_rq = qdesc; in lpfc_sli4_queue_create()
7341 qdesc = lpfc_sli4_queue_alloc(phba, phba->sli4_hba.rq_esize, in lpfc_sli4_queue_create()
7342 phba->sli4_hba.rq_ecount); in lpfc_sli4_queue_create()
7348 phba->sli4_hba.dat_rq = qdesc; in lpfc_sli4_queue_create()
7380 if (phba->sli4_hba.hba_eq != NULL) { in lpfc_sli4_queue_destroy()
7383 if (phba->sli4_hba.hba_eq[idx] != NULL) { in lpfc_sli4_queue_destroy()
7385 phba->sli4_hba.hba_eq[idx]); in lpfc_sli4_queue_destroy()
7386 phba->sli4_hba.hba_eq[idx] = NULL; in lpfc_sli4_queue_destroy()
7389 kfree(phba->sli4_hba.hba_eq); in lpfc_sli4_queue_destroy()
7390 phba->sli4_hba.hba_eq = NULL; in lpfc_sli4_queue_destroy()
7393 if (phba->sli4_hba.fcp_cq != NULL) { in lpfc_sli4_queue_destroy()
7396 if (phba->sli4_hba.fcp_cq[idx] != NULL) { in lpfc_sli4_queue_destroy()
7398 phba->sli4_hba.fcp_cq[idx]); in lpfc_sli4_queue_destroy()
7399 phba->sli4_hba.fcp_cq[idx] = NULL; in lpfc_sli4_queue_destroy()
7402 kfree(phba->sli4_hba.fcp_cq); in lpfc_sli4_queue_destroy()
7403 phba->sli4_hba.fcp_cq = NULL; in lpfc_sli4_queue_destroy()
7406 if (phba->sli4_hba.fcp_wq != NULL) { in lpfc_sli4_queue_destroy()
7409 if (phba->sli4_hba.fcp_wq[idx] != NULL) { in lpfc_sli4_queue_destroy()
7411 phba->sli4_hba.fcp_wq[idx]); in lpfc_sli4_queue_destroy()
7412 phba->sli4_hba.fcp_wq[idx] = NULL; in lpfc_sli4_queue_destroy()
7415 kfree(phba->sli4_hba.fcp_wq); in lpfc_sli4_queue_destroy()
7416 phba->sli4_hba.fcp_wq = NULL; in lpfc_sli4_queue_destroy()
7420 if (phba->sli4_hba.fcp_cq_map != NULL) { in lpfc_sli4_queue_destroy()
7421 kfree(phba->sli4_hba.fcp_cq_map); in lpfc_sli4_queue_destroy()
7422 phba->sli4_hba.fcp_cq_map = NULL; in lpfc_sli4_queue_destroy()
7426 if (phba->sli4_hba.mbx_wq != NULL) { in lpfc_sli4_queue_destroy()
7427 lpfc_sli4_queue_free(phba->sli4_hba.mbx_wq); in lpfc_sli4_queue_destroy()
7428 phba->sli4_hba.mbx_wq = NULL; in lpfc_sli4_queue_destroy()
7432 if (phba->sli4_hba.els_wq != NULL) { in lpfc_sli4_queue_destroy()
7433 lpfc_sli4_queue_free(phba->sli4_hba.els_wq); in lpfc_sli4_queue_destroy()
7434 phba->sli4_hba.els_wq = NULL; in lpfc_sli4_queue_destroy()
7438 if (phba->sli4_hba.hdr_rq != NULL) { in lpfc_sli4_queue_destroy()
7439 lpfc_sli4_queue_free(phba->sli4_hba.hdr_rq); in lpfc_sli4_queue_destroy()
7440 phba->sli4_hba.hdr_rq = NULL; in lpfc_sli4_queue_destroy()
7442 if (phba->sli4_hba.dat_rq != NULL) { in lpfc_sli4_queue_destroy()
7443 lpfc_sli4_queue_free(phba->sli4_hba.dat_rq); in lpfc_sli4_queue_destroy()
7444 phba->sli4_hba.dat_rq = NULL; in lpfc_sli4_queue_destroy()
7448 if (phba->sli4_hba.els_cq != NULL) { in lpfc_sli4_queue_destroy()
7449 lpfc_sli4_queue_free(phba->sli4_hba.els_cq); in lpfc_sli4_queue_destroy()
7450 phba->sli4_hba.els_cq = NULL; in lpfc_sli4_queue_destroy()
7454 if (phba->sli4_hba.mbx_cq != NULL) { in lpfc_sli4_queue_destroy()
7455 lpfc_sli4_queue_free(phba->sli4_hba.mbx_cq); in lpfc_sli4_queue_destroy()
7456 phba->sli4_hba.mbx_cq = NULL; in lpfc_sli4_queue_destroy()
7518 phba->sli4_hba.fw_func_mode = in lpfc_sli4_queue_setup()
7520 phba->sli4_hba.ulp0_mode = mboxq->u.mqe.un.query_fw_cfg.rsp.ulp0_mode; in lpfc_sli4_queue_setup()
7521 phba->sli4_hba.ulp1_mode = mboxq->u.mqe.un.query_fw_cfg.rsp.ulp1_mode; in lpfc_sli4_queue_setup()
7522 phba->sli4_hba.physical_port = in lpfc_sli4_queue_setup()
7526 "ulp1_mode:x%x\n", phba->sli4_hba.fw_func_mode, in lpfc_sli4_queue_setup()
7527 phba->sli4_hba.ulp0_mode, phba->sli4_hba.ulp1_mode); in lpfc_sli4_queue_setup()
7537 if (phba->cfg_fcp_io_channel && !phba->sli4_hba.hba_eq) { in lpfc_sli4_queue_setup()
7544 if (!phba->sli4_hba.hba_eq[fcp_eqidx]) { in lpfc_sli4_queue_setup()
7551 rc = lpfc_eq_create(phba, phba->sli4_hba.hba_eq[fcp_eqidx], in lpfc_sli4_queue_setup()
7563 phba->sli4_hba.hba_eq[fcp_eqidx]->queue_id); in lpfc_sli4_queue_setup()
7567 if (!phba->sli4_hba.fcp_cq) { in lpfc_sli4_queue_setup()
7576 if (!phba->sli4_hba.fcp_cq[fcp_cqidx]) { in lpfc_sli4_queue_setup()
7583 rc = lpfc_cq_create(phba, phba->sli4_hba.fcp_cq[fcp_cqidx], in lpfc_sli4_queue_setup()
7584 phba->sli4_hba.hba_eq[fcp_cqidx], LPFC_WCQ, LPFC_FCP); in lpfc_sli4_queue_setup()
7594 phba->sli4_hba.fcp_cq_map[fcp_cqidx] = in lpfc_sli4_queue_setup()
7595 phba->sli4_hba.fcp_cq[fcp_cqidx]->queue_id; in lpfc_sli4_queue_setup()
7601 phba->sli4_hba.fcp_cq[fcp_cqidx]->queue_id, in lpfc_sli4_queue_setup()
7603 phba->sli4_hba.hba_eq[fcp_cqidx]->queue_id); in lpfc_sli4_queue_setup()
7607 if (!phba->sli4_hba.fcp_wq) { in lpfc_sli4_queue_setup()
7616 if (!phba->sli4_hba.fcp_wq[fcp_wqidx]) { in lpfc_sli4_queue_setup()
7623 rc = lpfc_wq_create(phba, phba->sli4_hba.fcp_wq[fcp_wqidx], in lpfc_sli4_queue_setup()
7624 phba->sli4_hba.fcp_cq[fcp_wqidx], in lpfc_sli4_queue_setup()
7636 pring->sli.sli4.wqp = (void *)phba->sli4_hba.fcp_wq[fcp_wqidx]; in lpfc_sli4_queue_setup()
7637 phba->sli4_hba.fcp_cq[fcp_wqidx]->pring = pring; in lpfc_sli4_queue_setup()
7643 phba->sli4_hba.fcp_wq[fcp_wqidx]->queue_id, in lpfc_sli4_queue_setup()
7645 phba->sli4_hba.fcp_cq[fcp_wqidx]->queue_id); in lpfc_sli4_queue_setup()
7652 if (!phba->sli4_hba.mbx_cq) { in lpfc_sli4_queue_setup()
7658 rc = lpfc_cq_create(phba, phba->sli4_hba.mbx_cq, in lpfc_sli4_queue_setup()
7659 phba->sli4_hba.hba_eq[0], LPFC_MCQ, LPFC_MBOX); in lpfc_sli4_queue_setup()
7668 phba->sli4_hba.mbx_cq->queue_id, in lpfc_sli4_queue_setup()
7669 phba->sli4_hba.hba_eq[0]->queue_id); in lpfc_sli4_queue_setup()
7672 if (!phba->sli4_hba.els_cq) { in lpfc_sli4_queue_setup()
7678 rc = lpfc_cq_create(phba, phba->sli4_hba.els_cq, in lpfc_sli4_queue_setup()
7679 phba->sli4_hba.hba_eq[0], LPFC_WCQ, LPFC_ELS); in lpfc_sli4_queue_setup()
7688 phba->sli4_hba.els_cq->queue_id, in lpfc_sli4_queue_setup()
7689 phba->sli4_hba.hba_eq[0]->queue_id); in lpfc_sli4_queue_setup()
7696 if (!phba->sli4_hba.mbx_wq) { in lpfc_sli4_queue_setup()
7702 rc = lpfc_mq_create(phba, phba->sli4_hba.mbx_wq, in lpfc_sli4_queue_setup()
7703 phba->sli4_hba.mbx_cq, LPFC_MBOX); in lpfc_sli4_queue_setup()
7712 phba->sli4_hba.mbx_wq->queue_id, in lpfc_sli4_queue_setup()
7713 phba->sli4_hba.mbx_cq->queue_id); in lpfc_sli4_queue_setup()
7716 if (!phba->sli4_hba.els_wq) { in lpfc_sli4_queue_setup()
7722 rc = lpfc_wq_create(phba, phba->sli4_hba.els_wq, in lpfc_sli4_queue_setup()
7723 phba->sli4_hba.els_cq, LPFC_ELS); in lpfc_sli4_queue_setup()
7733 pring->sli.sli4.wqp = (void *)phba->sli4_hba.els_wq; in lpfc_sli4_queue_setup()
7734 phba->sli4_hba.els_cq->pring = pring; in lpfc_sli4_queue_setup()
7738 phba->sli4_hba.els_wq->queue_id, in lpfc_sli4_queue_setup()
7739 phba->sli4_hba.els_cq->queue_id); in lpfc_sli4_queue_setup()
7744 if (!phba->sli4_hba.hdr_rq || !phba->sli4_hba.dat_rq) { in lpfc_sli4_queue_setup()
7751 lpfc_rq_adjust_repost(phba, phba->sli4_hba.hdr_rq, LPFC_ELS_HBQ); in lpfc_sli4_queue_setup()
7752 lpfc_rq_adjust_repost(phba, phba->sli4_hba.dat_rq, LPFC_ELS_HBQ); in lpfc_sli4_queue_setup()
7754 rc = lpfc_rq_create(phba, phba->sli4_hba.hdr_rq, phba->sli4_hba.dat_rq, in lpfc_sli4_queue_setup()
7755 phba->sli4_hba.els_cq, LPFC_USOL); in lpfc_sli4_queue_setup()
7766 phba->sli4_hba.hdr_rq->queue_id, in lpfc_sli4_queue_setup()
7767 phba->sli4_hba.dat_rq->queue_id, in lpfc_sli4_queue_setup()
7768 phba->sli4_hba.els_cq->queue_id); in lpfc_sli4_queue_setup()
7790 lpfc_rq_destroy(phba, phba->sli4_hba.hdr_rq, phba->sli4_hba.dat_rq); in lpfc_sli4_queue_setup()
7792 lpfc_wq_destroy(phba, phba->sli4_hba.els_wq); in lpfc_sli4_queue_setup()
7794 lpfc_mq_destroy(phba, phba->sli4_hba.mbx_wq); in lpfc_sli4_queue_setup()
7796 lpfc_cq_destroy(phba, phba->sli4_hba.els_cq); in lpfc_sli4_queue_setup()
7798 lpfc_cq_destroy(phba, phba->sli4_hba.mbx_cq); in lpfc_sli4_queue_setup()
7801 lpfc_wq_destroy(phba, phba->sli4_hba.fcp_wq[fcp_wqidx]); in lpfc_sli4_queue_setup()
7804 lpfc_cq_destroy(phba, phba->sli4_hba.fcp_cq[fcp_cqidx]); in lpfc_sli4_queue_setup()
7807 lpfc_eq_destroy(phba, phba->sli4_hba.hba_eq[fcp_eqidx]); in lpfc_sli4_queue_setup()
7833 lpfc_mq_destroy(phba, phba->sli4_hba.mbx_wq); in lpfc_sli4_queue_unset()
7835 lpfc_wq_destroy(phba, phba->sli4_hba.els_wq); in lpfc_sli4_queue_unset()
7837 lpfc_rq_destroy(phba, phba->sli4_hba.hdr_rq, phba->sli4_hba.dat_rq); in lpfc_sli4_queue_unset()
7839 if (phba->sli4_hba.fcp_wq) { in lpfc_sli4_queue_unset()
7842 lpfc_wq_destroy(phba, phba->sli4_hba.fcp_wq[fcp_qidx]); in lpfc_sli4_queue_unset()
7845 lpfc_cq_destroy(phba, phba->sli4_hba.mbx_cq); in lpfc_sli4_queue_unset()
7847 lpfc_cq_destroy(phba, phba->sli4_hba.els_cq); in lpfc_sli4_queue_unset()
7849 if (phba->sli4_hba.fcp_cq) { in lpfc_sli4_queue_unset()
7852 lpfc_cq_destroy(phba, phba->sli4_hba.fcp_cq[fcp_qidx]); in lpfc_sli4_queue_unset()
7855 if (phba->sli4_hba.hba_eq) { in lpfc_sli4_queue_unset()
7858 lpfc_eq_destroy(phba, phba->sli4_hba.hba_eq[fcp_qidx]); in lpfc_sli4_queue_unset()
7884 for (i = 0; i < (4 * phba->sli4_hba.cq_ecount); i++) { in lpfc_sli4_cq_event_pool_create()
7889 &phba->sli4_hba.sp_cqe_event_pool); in lpfc_sli4_cq_event_pool_create()
7914 &phba->sli4_hba.sp_cqe_event_pool, list) { in lpfc_sli4_cq_event_pool_destroy()
7935 list_remove_head(&phba->sli4_hba.sp_cqe_event_pool, cq_event, in __lpfc_sli4_cq_event_alloc()
7974 list_add_tail(&cq_event->list, &phba->sli4_hba.sp_cqe_event_pool); in __lpfc_sli4_cq_event_release()
8012 list_splice_init(&phba->sli4_hba.sp_fcp_xri_aborted_work_queue, in lpfc_sli4_cq_event_release_all()
8015 list_splice_init(&phba->sli4_hba.sp_els_xri_aborted_work_queue, in lpfc_sli4_cq_event_release_all()
8018 list_splice_init(&phba->sli4_hba.sp_asynce_work_queue, in lpfc_sli4_cq_event_release_all()
8052 if_type = bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf); in lpfc_pci_function_reset()
8094 if (lpfc_readl(phba->sli4_hba.u.if_type2. in lpfc_pci_function_reset()
8106 phba->sli4_hba.u.if_type2.ERR1regaddr); in lpfc_pci_function_reset()
8108 phba->sli4_hba.u.if_type2.ERR2regaddr); in lpfc_pci_function_reset()
8128 writel(reg_data.word0, phba->sli4_hba.u.if_type2. in lpfc_pci_function_reset()
8199 &phba->sli4_hba.sli_intf.word0)) { in lpfc_sli4_pci_mem_setup()
8204 if (bf_get(lpfc_sli_intf_valid, &phba->sli4_hba.sli_intf) != in lpfc_sli4_pci_mem_setup()
8209 phba->sli4_hba.sli_intf.word0); in lpfc_sli4_pci_mem_setup()
8213 if_type = bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf); in lpfc_sli4_pci_mem_setup()
8228 phba->sli4_hba.conf_regs_memmap_p = in lpfc_sli4_pci_mem_setup()
8230 if (!phba->sli4_hba.conf_regs_memmap_p) { in lpfc_sli4_pci_mem_setup()
8236 phba->pci_bar0_memmap_p = phba->sli4_hba.conf_regs_memmap_p; in lpfc_sli4_pci_mem_setup()
8247 phba->sli4_hba.conf_regs_memmap_p = in lpfc_sli4_pci_mem_setup()
8249 if (!phba->sli4_hba.conf_regs_memmap_p) { in lpfc_sli4_pci_mem_setup()
8266 phba->sli4_hba.ctrl_regs_memmap_p = in lpfc_sli4_pci_mem_setup()
8268 if (!phba->sli4_hba.ctrl_regs_memmap_p) { in lpfc_sli4_pci_mem_setup()
8273 phba->pci_bar2_memmap_p = phba->sli4_hba.ctrl_regs_memmap_p; in lpfc_sli4_pci_mem_setup()
8285 phba->sli4_hba.drbl_regs_memmap_p = in lpfc_sli4_pci_mem_setup()
8287 if (!phba->sli4_hba.drbl_regs_memmap_p) { in lpfc_sli4_pci_mem_setup()
8292 phba->pci_bar4_memmap_p = phba->sli4_hba.drbl_regs_memmap_p; in lpfc_sli4_pci_mem_setup()
8301 iounmap(phba->sli4_hba.drbl_regs_memmap_p); in lpfc_sli4_pci_mem_setup()
8303 iounmap(phba->sli4_hba.ctrl_regs_memmap_p); in lpfc_sli4_pci_mem_setup()
8305 iounmap(phba->sli4_hba.conf_regs_memmap_p); in lpfc_sli4_pci_mem_setup()
8321 if_type = bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf); in lpfc_sli4_pci_mem_unset()
8325 iounmap(phba->sli4_hba.drbl_regs_memmap_p); in lpfc_sli4_pci_mem_unset()
8326 iounmap(phba->sli4_hba.ctrl_regs_memmap_p); in lpfc_sli4_pci_mem_unset()
8327 iounmap(phba->sli4_hba.conf_regs_memmap_p); in lpfc_sli4_pci_mem_unset()
8330 iounmap(phba->sli4_hba.conf_regs_memmap_p); in lpfc_sli4_pci_mem_unset()
8636 cpup = phba->sli4_hba.cpu_map; in lpfc_find_next_cpu()
8637 for (cpu = 0; cpu < phba->sli4_hba.num_present_cpu; cpu++) { in lpfc_find_next_cpu()
8655 for (cpu = 0; cpu < phba->sli4_hba.num_present_cpu; cpu++) { in lpfc_find_next_cpu()
8660 cpup = phba->sli4_hba.cpu_map; in lpfc_find_next_cpu()
8661 for (cpu = 0; cpu < phba->sli4_hba.num_present_cpu; cpu++) { in lpfc_find_next_cpu()
8701 memset(phba->sli4_hba.cpu_map, 0xff, in lpfc_sli4_set_affinity()
8703 phba->sli4_hba.num_present_cpu)); in lpfc_sli4_set_affinity()
8712 cpup = phba->sli4_hba.cpu_map; in lpfc_sli4_set_affinity()
8713 for (cpu = 0; cpu < phba->sli4_hba.num_present_cpu; cpu++) { in lpfc_sli4_set_affinity()
8738 cpup = phba->sli4_hba.cpu_map; in lpfc_sli4_set_affinity()
8756 cpup = phba->sli4_hba.cpu_map; in lpfc_sli4_set_affinity()
8757 for (i = 0; i < phba->sli4_hba.num_present_cpu; i++) { in lpfc_sli4_set_affinity()
8777 cpup->irq = phba->sli4_hba.msix_entries[idx].vector; in lpfc_sli4_set_affinity()
8787 i = irq_set_affinity_hint(phba->sli4_hba.msix_entries[idx]. in lpfc_sli4_set_affinity()
8794 phba->sli4_hba.msix_entries[idx].vector, i); in lpfc_sli4_set_affinity()
8826 cpup = phba->sli4_hba.cpu_map; in lpfc_sli4_set_affinity()
8829 for (idx = 0; idx < phba->sli4_hba.num_present_cpu; in lpfc_sli4_set_affinity()
8862 if (cpu >= phba->sli4_hba.num_present_cpu) { in lpfc_sli4_set_affinity()
8863 cpup = phba->sli4_hba.cpu_map; in lpfc_sli4_set_affinity()
8871 if (phba->sli4_hba.num_online_cpu != phba->sli4_hba.num_present_cpu) { in lpfc_sli4_set_affinity()
8872 cpup = phba->sli4_hba.cpu_map; in lpfc_sli4_set_affinity()
8873 for (idx = 0; idx < phba->sli4_hba.num_present_cpu; idx++) { in lpfc_sli4_set_affinity()
8888 if (num_io_channel != phba->sli4_hba.num_present_cpu) in lpfc_sli4_set_affinity()
8892 num_io_channel, phba->sli4_hba.num_present_cpu, in lpfc_sli4_set_affinity()
8926 phba->sli4_hba.msix_entries[index].entry = index; in lpfc_sli4_enable_msix()
8931 phba->sli4_hba.msix_entries[index].entry = index; in lpfc_sli4_enable_msix()
8934 rc = pci_enable_msix_range(phba->pcidev, phba->sli4_hba.msix_entries, in lpfc_sli4_enable_msix()
8948 phba->sli4_hba.msix_entries[index].vector, in lpfc_sli4_enable_msix()
8949 phba->sli4_hba.msix_entries[index].entry); in lpfc_sli4_enable_msix()
8953 memset(&phba->sli4_hba.handler_name[index], 0, 16); in lpfc_sli4_enable_msix()
8954 snprintf((char *)&phba->sli4_hba.handler_name[index], in lpfc_sli4_enable_msix()
8958 phba->sli4_hba.fcp_eq_hdl[index].idx = index; in lpfc_sli4_enable_msix()
8959 phba->sli4_hba.fcp_eq_hdl[index].phba = phba; in lpfc_sli4_enable_msix()
8960 atomic_set(&phba->sli4_hba.fcp_eq_hdl[index].fcp_eq_in_use, 1); in lpfc_sli4_enable_msix()
8963 phba->sli4_hba.msix_entries[index].vector, in lpfc_sli4_enable_msix()
8965 (char *)&phba->sli4_hba.handler_name[index], in lpfc_sli4_enable_msix()
8966 &phba->sli4_hba.fcp_eq_hdl[index]); in lpfc_sli4_enable_msix()
8969 phba->sli4_hba.msix_entries[index].vector, in lpfc_sli4_enable_msix()
8971 (char *)&phba->sli4_hba.handler_name[index], in lpfc_sli4_enable_msix()
8972 &phba->sli4_hba.fcp_eq_hdl[index]); in lpfc_sli4_enable_msix()
8999 irq_set_affinity_hint(phba->sli4_hba.msix_entries[index]. in lpfc_sli4_enable_msix()
9001 free_irq(phba->sli4_hba.msix_entries[index].vector, in lpfc_sli4_enable_msix()
9002 &phba->sli4_hba.fcp_eq_hdl[index]); in lpfc_sli4_enable_msix()
9026 irq_set_affinity_hint(phba->sli4_hba.msix_entries[index]. in lpfc_sli4_disable_msix()
9028 free_irq(phba->sli4_hba.msix_entries[index].vector, in lpfc_sli4_disable_msix()
9029 &phba->sli4_hba.fcp_eq_hdl[index]); in lpfc_sli4_disable_msix()
9032 free_irq(phba->sli4_hba.msix_entries[index].vector, in lpfc_sli4_disable_msix()
9033 &phba->sli4_hba.fcp_eq_hdl[index]); in lpfc_sli4_disable_msix()
9080 phba->sli4_hba.fcp_eq_hdl[index].idx = index; in lpfc_sli4_enable_msi()
9081 phba->sli4_hba.fcp_eq_hdl[index].phba = phba; in lpfc_sli4_enable_msi()
9085 phba->sli4_hba.fcp_eq_hdl[index].idx = index; in lpfc_sli4_enable_msi()
9086 phba->sli4_hba.fcp_eq_hdl[index].phba = phba; in lpfc_sli4_enable_msi()
9165 phba->sli4_hba.fcp_eq_hdl[index].idx = index; in lpfc_sli4_enable_intr()
9166 phba->sli4_hba.fcp_eq_hdl[index].phba = phba; in lpfc_sli4_enable_intr()
9167 atomic_set(&phba->sli4_hba.fcp_eq_hdl[index]. in lpfc_sli4_enable_intr()
9171 phba->sli4_hba.fcp_eq_hdl[index].idx = index; in lpfc_sli4_enable_intr()
9172 phba->sli4_hba.fcp_eq_hdl[index].phba = phba; in lpfc_sli4_enable_intr()
9173 atomic_set(&phba->sli4_hba.fcp_eq_hdl[index]. in lpfc_sli4_enable_intr()
9258 int fcp_xri_cmpl = list_empty(&phba->sli4_hba.lpfc_abts_scsi_buf_list); in lpfc_sli4_xri_exchange_busy_wait()
9259 int els_xri_cmpl = list_empty(&phba->sli4_hba.lpfc_abts_els_sgl_list); in lpfc_sli4_xri_exchange_busy_wait()
9280 list_empty(&phba->sli4_hba.lpfc_abts_scsi_buf_list); in lpfc_sli4_xri_exchange_busy_wait()
9282 list_empty(&phba->sli4_hba.lpfc_abts_els_sgl_list); in lpfc_sli4_xri_exchange_busy_wait()
9304 phba->sli4_hba.intr_enable = 0; in lpfc_sli4_hba_unset()
9381 if (!phba->sli4_hba.intr_enable) in lpfc_pc_sli4_params_get()
9391 sli4_params = &phba->sli4_hba.pc_sli4_params; in lpfc_pc_sli4_params_get()
9455 phba->sli4_hba.rpi_hdrs_in_use = 1; in lpfc_get_sli4_parameters()
9463 if (!phba->sli4_hba.intr_enable) in lpfc_get_sli4_parameters()
9471 sli4_params = &phba->sli4_hba.pc_sli4_params; in lpfc_get_sli4_parameters()
9496 phba->sli4_hba.extents_in_use = bf_get(cfg_ext, mbx_sli4_parameters); in lpfc_get_sli4_parameters()
9497 phba->sli4_hba.rpi_hdrs_in_use = bf_get(cfg_hdrr, mbx_sli4_parameters); in lpfc_get_sli4_parameters()
10117 int max_xri = phba->sli4_hba.max_cfg_param.max_xri; in lpfc_sli4_get_els_iocb_cnt()
10252 if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) != in lpfc_sli4_request_firmware_update()
11129 if (phba->sli4_hba.pc_sli4_params.oas_supported) { in lpfc_sli4_oas_verify()
11158 rc = lpfc_eq_create(phba, phba->sli4_hba.fof_eq, LPFC_MAX_IMAX); in lpfc_fof_queue_setup()
11164 rc = lpfc_cq_create(phba, phba->sli4_hba.oas_cq, in lpfc_fof_queue_setup()
11165 phba->sli4_hba.fof_eq, LPFC_WCQ, LPFC_FCP); in lpfc_fof_queue_setup()
11169 rc = lpfc_wq_create(phba, phba->sli4_hba.oas_wq, in lpfc_fof_queue_setup()
11170 phba->sli4_hba.oas_cq, LPFC_FCP); in lpfc_fof_queue_setup()
11174 phba->sli4_hba.oas_cq->pring = &psli->ring[LPFC_FCP_OAS_RING]; in lpfc_fof_queue_setup()
11175 phba->sli4_hba.oas_ring = &psli->ring[LPFC_FCP_OAS_RING]; in lpfc_fof_queue_setup()
11181 lpfc_cq_destroy(phba, phba->sli4_hba.oas_cq); in lpfc_fof_queue_setup()
11183 lpfc_eq_destroy(phba, phba->sli4_hba.fof_eq); in lpfc_fof_queue_setup()
11208 qdesc = lpfc_sli4_queue_alloc(phba, phba->sli4_hba.eq_esize, in lpfc_fof_queue_create()
11209 phba->sli4_hba.eq_ecount); in lpfc_fof_queue_create()
11213 phba->sli4_hba.fof_eq = qdesc; in lpfc_fof_queue_create()
11218 qdesc = lpfc_sli4_queue_alloc(phba, phba->sli4_hba.cq_esize, in lpfc_fof_queue_create()
11219 phba->sli4_hba.cq_ecount); in lpfc_fof_queue_create()
11223 phba->sli4_hba.oas_cq = qdesc; in lpfc_fof_queue_create()
11226 qdesc = lpfc_sli4_queue_alloc(phba, phba->sli4_hba.wq_esize, in lpfc_fof_queue_create()
11227 phba->sli4_hba.wq_ecount); in lpfc_fof_queue_create()
11231 phba->sli4_hba.oas_wq = qdesc; in lpfc_fof_queue_create()
11255 if (phba->sli4_hba.fof_eq != NULL) { in lpfc_fof_queue_destroy()
11256 lpfc_sli4_queue_free(phba->sli4_hba.fof_eq); in lpfc_fof_queue_destroy()
11257 phba->sli4_hba.fof_eq = NULL; in lpfc_fof_queue_destroy()
11261 if (phba->sli4_hba.oas_cq != NULL) { in lpfc_fof_queue_destroy()
11262 lpfc_sli4_queue_free(phba->sli4_hba.oas_cq); in lpfc_fof_queue_destroy()
11263 phba->sli4_hba.oas_cq = NULL; in lpfc_fof_queue_destroy()
11267 if (phba->sli4_hba.oas_wq != NULL) { in lpfc_fof_queue_destroy()
11268 lpfc_sli4_queue_free(phba->sli4_hba.oas_wq); in lpfc_fof_queue_destroy()
11269 phba->sli4_hba.oas_wq = NULL; in lpfc_fof_queue_destroy()