Lines Matching refs:phba
57 lpfc_dump_static_vport(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb, in lpfc_dump_static_vport() argument
74 if (phba->sli_rev != LPFC_SLI_REV4) { in lpfc_dump_static_vport()
83 mp->virt = lpfc_mbuf_alloc(phba, 0, &mp->phys); in lpfc_dump_static_vport()
87 lpfc_printf_log(phba, KERN_ERR, LOG_MBOX, in lpfc_dump_static_vport()
111 lpfc_down_link(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) in lpfc_down_link() argument
133 lpfc_dump_mem(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb, uint16_t offset, in lpfc_dump_mem() argument
166 lpfc_dump_wakeup_param(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) in lpfc_dump_wakeup_param() argument
181 if (phba->sli_rev < LPFC_SLI_REV4) in lpfc_dump_wakeup_param()
203 lpfc_read_nv(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) in lpfc_read_nv() argument
228 lpfc_config_async(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb, in lpfc_config_async() argument
255 lpfc_heart_beat(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) in lpfc_heart_beat() argument
288 lpfc_read_topology(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb, in lpfc_read_topology() argument
294 psli = &phba->sli; in lpfc_read_topology()
328 lpfc_clear_la(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) in lpfc_clear_la() argument
335 mb->un.varClearLA.eventTag = phba->fc_eventTag; in lpfc_clear_la()
356 lpfc_config_link(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) in lpfc_config_link() argument
358 struct lpfc_vport *vport = phba->pport; in lpfc_config_link()
365 if (phba->cfg_cr_delay && (phba->sli_rev < LPFC_SLI_REV4)) { in lpfc_config_link()
368 mb->un.varCfgLnk.cr_delay = phba->cfg_cr_delay; in lpfc_config_link()
369 mb->un.varCfgLnk.cr_count = phba->cfg_cr_count; in lpfc_config_link()
373 mb->un.varCfgLnk.edtov = phba->fc_edtov; in lpfc_config_link()
374 mb->un.varCfgLnk.arbtov = phba->fc_arbtov; in lpfc_config_link()
375 mb->un.varCfgLnk.ratov = phba->fc_ratov; in lpfc_config_link()
376 mb->un.varCfgLnk.rttov = phba->fc_rttov; in lpfc_config_link()
377 mb->un.varCfgLnk.altov = phba->fc_altov; in lpfc_config_link()
378 mb->un.varCfgLnk.crtov = phba->fc_crtov; in lpfc_config_link()
379 mb->un.varCfgLnk.citov = phba->fc_citov; in lpfc_config_link()
381 if (phba->cfg_ack0 && (phba->sli_rev < LPFC_SLI_REV4)) in lpfc_config_link()
403 lpfc_config_msi(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) in lpfc_config_msi() argument
409 if (phba->cfg_use_msi != 2) { in lpfc_config_msi()
410 lpfc_printf_log(phba, KERN_ERR, LOG_INIT, in lpfc_config_msi()
412 "cfg_use_msi: 0x%x\n", phba->cfg_use_msi); in lpfc_config_msi()
416 if (phba->sli_rev < 3) { in lpfc_config_msi()
417 lpfc_printf_log(phba, KERN_ERR, LOG_INIT, in lpfc_config_msi()
419 "SLI Revision: 0x%x\n", phba->sli_rev); in lpfc_config_msi()
482 lpfc_init_link(struct lpfc_hba * phba, in lpfc_init_link() argument
492 psli = &phba->sli; in lpfc_init_link()
519 vpd = &phba->vpd; in lpfc_init_link()
558 mb->un.varInitLnk.fabric_AL_PA = phba->fc_pref_ALPA; in lpfc_init_link()
584 lpfc_read_sparam(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb, int vpi) in lpfc_read_sparam() argument
590 psli = &phba->sli; in lpfc_read_sparam()
600 mp->virt = lpfc_mbuf_alloc(phba, 0, &mp->phys); in lpfc_read_sparam()
605 lpfc_printf_log(phba, KERN_WARNING, LOG_MBOX, in lpfc_read_sparam()
614 if (phba->sli_rev >= LPFC_SLI_REV3) in lpfc_read_sparam()
615 mb->un.varRdSparm.vpi = phba->vpi_ids[vpi]; in lpfc_read_sparam()
639 lpfc_unreg_did(struct lpfc_hba * phba, uint16_t vpi, uint32_t did, in lpfc_unreg_did() argument
650 (phba->sli_rev == LPFC_SLI_REV4)) in lpfc_unreg_did()
651 mb->un.varUnregDID.vpi = phba->vpi_ids[vpi]; in lpfc_unreg_did()
672 lpfc_read_config(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) in lpfc_read_config() argument
697 lpfc_read_lnk_stat(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) in lpfc_read_lnk_stat() argument
734 lpfc_reg_rpi(struct lpfc_hba *phba, uint16_t vpi, uint32_t did, in lpfc_reg_rpi() argument
744 if (phba->sli_rev == LPFC_SLI_REV4) in lpfc_reg_rpi()
745 mb->un.varRegLogin.rpi = phba->sli4_hba.rpi_ids[rpi]; in lpfc_reg_rpi()
746 if (phba->sli_rev >= LPFC_SLI_REV3) in lpfc_reg_rpi()
747 mb->un.varRegLogin.vpi = phba->vpi_ids[vpi]; in lpfc_reg_rpi()
753 mp->virt = lpfc_mbuf_alloc(phba, 0, &mp->phys); in lpfc_reg_rpi()
758 lpfc_printf_log(phba, KERN_WARNING, LOG_MBOX, in lpfc_reg_rpi()
798 lpfc_unreg_login(struct lpfc_hba *phba, uint16_t vpi, uint32_t rpi, in lpfc_unreg_login() argument
808 if (phba->sli_rev >= LPFC_SLI_REV3) in lpfc_unreg_login()
809 mb->un.varUnregLogin.vpi = phba->vpi_ids[vpi]; in lpfc_unreg_login()
827 struct lpfc_hba *phba = vport->phba; in lpfc_sli4_unreg_all_rpis() local
831 mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); in lpfc_sli4_unreg_all_rpis()
840 lpfc_unreg_login(phba, vport->vpi, phba->vpi_ids[vport->vpi], in lpfc_sli4_unreg_all_rpis()
846 rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); in lpfc_sli4_unreg_all_rpis()
848 mempool_free(mbox, phba->mbox_mem_pool); in lpfc_sli4_unreg_all_rpis()
871 struct lpfc_hba *phba = vport->phba; in lpfc_reg_vpi() local
877 if ((phba->sli_rev == LPFC_SLI_REV4) && in lpfc_reg_vpi()
881 mb->un.varRegVpi.vpi = phba->vpi_ids[vport->vpi]; in lpfc_reg_vpi()
883 if (phba->sli_rev == LPFC_SLI_REV4) in lpfc_reg_vpi()
884 mb->un.varRegVpi.vfi = phba->sli4_hba.vfi_ids[vport->vfi]; in lpfc_reg_vpi()
886 mb->un.varRegVpi.vfi = vport->vfi + vport->phba->vfi_base; in lpfc_reg_vpi()
915 lpfc_unreg_vpi(struct lpfc_hba *phba, uint16_t vpi, LPFC_MBOXQ_t *pmb) in lpfc_unreg_vpi() argument
920 if (phba->sli_rev == LPFC_SLI_REV3) in lpfc_unreg_vpi()
921 mb->un.varUnregVpi.vpi = phba->vpi_ids[vpi]; in lpfc_unreg_vpi()
922 else if (phba->sli_rev >= LPFC_SLI_REV4) in lpfc_unreg_vpi()
923 mb->un.varUnregVpi.sli4_vpi = phba->vpi_ids[vpi]; in lpfc_unreg_vpi()
939 lpfc_config_pcb_setup(struct lpfc_hba * phba) in lpfc_config_pcb_setup() argument
941 struct lpfc_sli *psli = &phba->sli; in lpfc_config_pcb_setup()
943 PCB_t *pcbp = phba->pcb; in lpfc_config_pcb_setup()
955 phba->sli_rev == 3 ? SLI3_IOCB_CMD_SIZE : in lpfc_config_pcb_setup()
958 phba->sli_rev == 3 ? SLI3_IOCB_RSP_SIZE : in lpfc_config_pcb_setup()
975 pring->sli.sli3.cmdringaddr = (void *)&phba->IOCBs[iocbCnt]; in lpfc_config_pcb_setup()
978 offset = (uint8_t *) &phba->IOCBs[iocbCnt] - in lpfc_config_pcb_setup()
979 (uint8_t *) phba->slim2p.virt; in lpfc_config_pcb_setup()
980 pdma_addr = phba->slim2p.phys + offset; in lpfc_config_pcb_setup()
986 pring->sli.sli3.rspringaddr = (void *) &phba->IOCBs[iocbCnt]; in lpfc_config_pcb_setup()
989 offset = (uint8_t *)&phba->IOCBs[iocbCnt] - in lpfc_config_pcb_setup()
990 (uint8_t *)phba->slim2p.virt; in lpfc_config_pcb_setup()
991 pdma_addr = phba->slim2p.phys + offset; in lpfc_config_pcb_setup()
1013 lpfc_read_rev(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) in lpfc_read_rev() argument
1025 lpfc_sli4_swap_str(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) in lpfc_sli4_swap_str() argument
1123 lpfc_config_hbq(struct lpfc_hba *phba, uint32_t id, in lpfc_config_hbq() argument
1150 hbqmb->hbqaddrLow = putPaddrLow(phba->hbqslimp.phys) + in lpfc_config_hbq()
1152 hbqmb->hbqaddrHigh = putPaddrHigh(phba->hbqslimp.phys); in lpfc_config_hbq()
1200 lpfc_config_ring(struct lpfc_hba * phba, int ring, LPFC_MBOXQ_t * pmb) in lpfc_config_ring() argument
1214 psli = &phba->sli; in lpfc_config_ring()
1255 lpfc_config_port(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) in lpfc_config_port() argument
1257 MAILBOX_t __iomem *mb_slim = (MAILBOX_t __iomem *) phba->MBslimaddr; in lpfc_config_port()
1272 offset = (uint8_t *)phba->pcb - (uint8_t *)phba->slim2p.virt; in lpfc_config_port()
1273 pdma_addr = phba->slim2p.phys + offset; in lpfc_config_port()
1282 if (phba->sli_rev == LPFC_SLI_REV3 && phba->vpd.sli3Feat.cerbm) { in lpfc_config_port()
1283 if (phba->cfg_enable_bg) in lpfc_config_port()
1285 if (phba->cfg_enable_dss) in lpfc_config_port()
1290 if (phba->max_vpi && phba->cfg_enable_npiv && in lpfc_config_port()
1291 phba->vpd.sli3Feat.cmv) { in lpfc_config_port()
1295 mb->un.varCfgPort.max_vpi = phba->max_vpi = 0; in lpfc_config_port()
1297 phba->sli_rev = LPFC_SLI_REV2; in lpfc_config_port()
1298 mb->un.varCfgPort.sli_mode = phba->sli_rev; in lpfc_config_port()
1301 if (phba->sli_rev == LPFC_SLI_REV3) in lpfc_config_port()
1305 phba->pcb->type = TYPE_NATIVE_SLI2; in lpfc_config_port()
1306 phba->pcb->feature = FEATURE_INITIAL_SLI2; in lpfc_config_port()
1309 phba->pcb->mailBoxSize = sizeof(MAILBOX_t) + MAILBOX_EXT_SIZE; in lpfc_config_port()
1310 offset = (uint8_t *)phba->mbox - (uint8_t *)phba->slim2p.virt; in lpfc_config_port()
1311 pdma_addr = phba->slim2p.phys + offset; in lpfc_config_port()
1312 phba->pcb->mbAddrHigh = putPaddrHigh(pdma_addr); in lpfc_config_port()
1313 phba->pcb->mbAddrLow = putPaddrLow(pdma_addr); in lpfc_config_port()
1334 pci_read_config_dword(phba->pcidev, PCI_BASE_ADDRESS_0, &bar_low); in lpfc_config_port()
1335 pci_read_config_dword(phba->pcidev, PCI_BASE_ADDRESS_1, &bar_high); in lpfc_config_port()
1365 if (phba->cfg_hostmem_hgp && phba->sli_rev != 3) { in lpfc_config_port()
1366 phba->host_gp = &phba->mbox->us.s2.host[0]; in lpfc_config_port()
1367 phba->hbq_put = NULL; in lpfc_config_port()
1368 offset = (uint8_t *)&phba->mbox->us.s2.host - in lpfc_config_port()
1369 (uint8_t *)phba->slim2p.virt; in lpfc_config_port()
1370 pdma_addr = phba->slim2p.phys + offset; in lpfc_config_port()
1371 phba->pcb->hgpAddrHigh = putPaddrHigh(pdma_addr); in lpfc_config_port()
1372 phba->pcb->hgpAddrLow = putPaddrLow(pdma_addr); in lpfc_config_port()
1377 if (phba->sli_rev == 3) { in lpfc_config_port()
1378 phba->host_gp = &mb_slim->us.s3.host[0]; in lpfc_config_port()
1379 phba->hbq_put = &mb_slim->us.s3.hbq_put[0]; in lpfc_config_port()
1381 phba->host_gp = &mb_slim->us.s2.host[0]; in lpfc_config_port()
1382 phba->hbq_put = NULL; in lpfc_config_port()
1386 phba->pcb->hgpAddrLow = (bar_low & PCI_BASE_ADDRESS_MEM_MASK) + in lpfc_config_port()
1387 (void __iomem *)phba->host_gp - in lpfc_config_port()
1388 (void __iomem *)phba->MBslimaddr; in lpfc_config_port()
1390 phba->pcb->hgpAddrHigh = bar_high; in lpfc_config_port()
1392 phba->pcb->hgpAddrHigh = 0; in lpfc_config_port()
1396 for (i = 0; i < phba->sli.num_rings; i++) { in lpfc_config_port()
1397 lpfc_memcpy_to_slim(phba->host_gp + i, &hgp, in lpfc_config_port()
1398 sizeof(*phba->host_gp)); in lpfc_config_port()
1403 if (phba->sli_rev == 3) in lpfc_config_port()
1408 pdma_addr = phba->slim2p.phys + pgp_offset; in lpfc_config_port()
1409 phba->pcb->pgpAddrHigh = putPaddrHigh(pdma_addr); in lpfc_config_port()
1410 phba->pcb->pgpAddrLow = putPaddrLow(pdma_addr); in lpfc_config_port()
1413 lpfc_config_pcb_setup(phba); in lpfc_config_port()
1416 if (lpfc_is_LC_HBA(phba->pcidev->device)) { in lpfc_config_port()
1419 lpfc_hba_init(phba, hbainit); in lpfc_config_port()
1425 lpfc_sli_pcimem_bcopy(phba->pcb, phba->pcb, sizeof(PCB_t)); in lpfc_config_port()
1444 lpfc_kill_board(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) in lpfc_kill_board() argument
1465 lpfc_mbox_put(struct lpfc_hba * phba, LPFC_MBOXQ_t * mbq) in lpfc_mbox_put() argument
1469 psli = &phba->sli; in lpfc_mbox_put()
1493 lpfc_mbox_get(struct lpfc_hba * phba) in lpfc_mbox_get() argument
1496 struct lpfc_sli *psli = &phba->sli; in lpfc_mbox_get()
1516 __lpfc_mbox_cmpl_put(struct lpfc_hba *phba, LPFC_MBOXQ_t *mbq) in __lpfc_mbox_cmpl_put() argument
1518 list_add_tail(&mbq->list, &phba->sli.mboxq_cmpl); in __lpfc_mbox_cmpl_put()
1532 lpfc_mbox_cmpl_put(struct lpfc_hba *phba, LPFC_MBOXQ_t *mbq) in lpfc_mbox_cmpl_put() argument
1537 spin_lock_irqsave(&phba->hbalock, iflag); in lpfc_mbox_cmpl_put()
1538 __lpfc_mbox_cmpl_put(phba, mbq); in lpfc_mbox_cmpl_put()
1539 spin_unlock_irqrestore(&phba->hbalock, iflag); in lpfc_mbox_cmpl_put()
1555 lpfc_mbox_cmd_check(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) in lpfc_mbox_cmd_check() argument
1563 lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_VPORT, in lpfc_mbox_cmd_check()
1584 lpfc_mbox_dev_check(struct lpfc_hba *phba) in lpfc_mbox_dev_check() argument
1587 if (unlikely(pci_channel_offline(phba->pcidev))) in lpfc_mbox_dev_check()
1591 if (phba->link_state == LPFC_HBA_ERROR) in lpfc_mbox_dev_check()
1609 lpfc_mbox_tmo_val(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) in lpfc_mbox_tmo_val() argument
1627 subsys = lpfc_sli_config_mbox_subsys_get(phba, mboxq); in lpfc_mbox_tmo_val()
1628 opcode = lpfc_sli_config_mbox_opcode_get(phba, mboxq); in lpfc_mbox_tmo_val()
1712 lpfc_sli4_mbox_cmd_free(struct lpfc_hba *phba, struct lpfcMboxq *mbox) in lpfc_sli4_mbox_cmd_free() argument
1723 mempool_free(mbox, phba->mbox_mem_pool); in lpfc_sli4_mbox_cmd_free()
1731 mempool_free(mbox, phba->mbox_mem_pool); in lpfc_sli4_mbox_cmd_free()
1738 dma_free_coherent(&phba->pcidev->dev, SLI4_PAGE_SIZE, in lpfc_sli4_mbox_cmd_free()
1744 mempool_free(mbox, phba->mbox_mem_pool); in lpfc_sli4_mbox_cmd_free()
1762 lpfc_sli4_config(struct lpfc_hba *phba, struct lpfcMboxq *mbox, in lpfc_sli4_config() argument
1803 lpfc_printf_log(phba, KERN_ERR, LOG_MBOX, in lpfc_sli4_config()
1814 viraddr = dma_zalloc_coherent(&phba->pcidev->dev, in lpfc_sli4_config()
1870 lpfc_sli4_mbox_rsrc_extent(struct lpfc_hba *phba, struct lpfcMboxq *mbox, in lpfc_sli4_mbox_rsrc_extent() argument
1904 opcode = lpfc_sli_config_mbox_opcode_get(phba, mbox); in lpfc_sli4_mbox_rsrc_extent()
1921 lpfc_printf_log(phba, KERN_ERR, LOG_MBOX, in lpfc_sli4_mbox_rsrc_extent()
1941 lpfc_sli_config_mbox_subsys_get(struct lpfc_hba *phba, LPFC_MBOXQ_t *mbox) in lpfc_sli_config_mbox_subsys_get() argument
1974 lpfc_sli_config_mbox_opcode_get(struct lpfc_hba *phba, LPFC_MBOXQ_t *mbox) in lpfc_sli_config_mbox_opcode_get() argument
2008 lpfc_sli4_mbx_read_fcf_rec(struct lpfc_hba *phba, in lpfc_sli4_mbx_read_fcf_rec() argument
2026 alloc_len = lpfc_sli4_config(phba, mboxq, LPFC_MBOX_SUBSYSTEM_FCOE, in lpfc_sli4_mbx_read_fcf_rec()
2031 lpfc_printf_log(phba, KERN_ERR, LOG_MBOX, in lpfc_sli4_mbx_read_fcf_rec()
2063 lpfc_request_features(struct lpfc_hba *phba, struct lpfcMboxq *mboxq) in lpfc_request_features() argument
2074 if (phba->cfg_enable_bg) in lpfc_request_features()
2078 if (phba->max_vpi && phba->cfg_enable_npiv) in lpfc_request_features()
2108 vport->phba->sli4_hba.vfi_ids[vport->vfi]); in lpfc_init_vfi()
2110 vport->phba->vpi_ids[vport->vpi]); in lpfc_init_vfi()
2112 vport->phba->fcf.fcfi); in lpfc_init_vfi()
2130 struct lpfc_hba *phba = vport->phba; in lpfc_reg_vfi() local
2137 phba->sli4_hba.vfi_ids[vport->vfi]); in lpfc_reg_vfi()
2138 bf_set(lpfc_reg_vfi_fcfi, reg_vfi, phba->fcf.fcfi); in lpfc_reg_vfi()
2139 bf_set(lpfc_reg_vfi_vpi, reg_vfi, phba->vpi_ids[vport->vpi]); in lpfc_reg_vfi()
2143 reg_vfi->e_d_tov = phba->fc_edtov; in lpfc_reg_vfi()
2144 reg_vfi->r_a_tov = phba->fc_ratov; in lpfc_reg_vfi()
2152 if ((phba->sli4_hba.lnk_info.lnk_tp == LPFC_LNK_TYPE_FC) && in lpfc_reg_vfi()
2154 (!phba->fc_topology_changed)) { in lpfc_reg_vfi()
2163 phba->fcf.fcfi, in lpfc_reg_vfi()
2164 phba->sli4_hba.vfi_ids[vport->vfi], in lpfc_reg_vfi()
2165 phba->vpi_ids[vport->vpi], in lpfc_reg_vfi()
2167 vport->port_state, phba->fc_topology_changed); in lpfc_reg_vfi()
2183 lpfc_init_vpi(struct lpfc_hba *phba, struct lpfcMboxq *mbox, uint16_t vpi) in lpfc_init_vpi() argument
2188 phba->vpi_ids[vpi]); in lpfc_init_vpi()
2190 phba->sli4_hba.vfi_ids[phba->pport->vfi]); in lpfc_init_vpi()
2210 vport->phba->sli4_hba.vfi_ids[vport->vfi]); in lpfc_unreg_vfi()
2222 lpfc_sli4_dump_cfg_rg23(struct lpfc_hba *phba, struct lpfcMboxq *mbox) in lpfc_sli4_dump_cfg_rg23() argument
2232 mp->virt = lpfc_mbuf_alloc(phba, 0, &mp->phys); in lpfc_sli4_dump_cfg_rg23()
2237 lpfc_printf_log(phba, KERN_WARNING, LOG_MBOX, in lpfc_sli4_dump_cfg_rg23()
2272 lpfc_reg_fcfi(struct lpfc_hba *phba, struct lpfcMboxq *mbox) in lpfc_reg_fcfi() argument
2279 bf_set(lpfc_reg_fcfi_rq_id0, reg_fcfi, phba->sli4_hba.hdr_rq->queue_id); in lpfc_reg_fcfi()
2284 phba->fcf.current_rec.fcf_indx); in lpfc_reg_fcfi()
2286 bf_set(lpfc_reg_fcfi_mam, reg_fcfi, (~phba->fcf.addr_mode) & 0x3); in lpfc_reg_fcfi()
2287 if (phba->fcf.current_rec.vlan_id != LPFC_FCOE_NULL_VID) { in lpfc_reg_fcfi()
2290 phba->fcf.current_rec.vlan_id); in lpfc_reg_fcfi()
2321 struct lpfc_hba *phba = ndlp->phba; in lpfc_resume_rpi() local
2328 phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]); in lpfc_resume_rpi()
2330 resume_rpi->event_tag = ndlp->phba->fc_eventTag; in lpfc_resume_rpi()