Lines Matching refs:hba

213 emlxs_mb_resetport(emlxs_hba_t *hba, MAILBOXQ *mbq)  in emlxs_mb_resetport()  argument
244 emlxs_mb_request_features(emlxs_hba_t *hba, MAILBOXQ *mbq, uint32_t mask) in emlxs_mb_request_features() argument
248 hba->flag &= ~FC_NPIV_ENABLED; in emlxs_mb_request_features()
249 hba->sli.sli4.flag &= ~(EMLXS_SLI4_PHON | EMLXS_SLI4_PHWQ); in emlxs_mb_request_features()
268 emlxs_mb_noop(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_mb_noop() argument
304 emlxs_mbext_noop(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_mbext_noop() argument
313 if ((mp = (MATCHMAP *)emlxs_mem_get(hba, MEM_BUF)) == 0) { in emlxs_mbext_noop()
344 emlxs_mb_eq_create(emlxs_hba_t *hba, MAILBOXQ *mbq, uint32_t num) in emlxs_mb_eq_create() argument
377 if ((hba->sli_intf & SLI_INTF_IF_TYPE_MASK) != SLI_INTF_IF_TYPE_6) { in emlxs_mb_eq_create()
384 hba->sli.sli4.eq[num].addr.size / SLI_PAGE_SIZE; in emlxs_mb_eq_create()
402 addr = hba->sli.sli4.eq[num].addr.phys; in emlxs_mb_eq_create()
417 emlxs_mb_cq_create(emlxs_hba_t *hba, MAILBOXQ *mbq, uint32_t num) in emlxs_mb_cq_create() argument
438 switch (hba->sli.sli4.param.CQV) { in emlxs_mb_cq_create()
457 (uint8_t)hba->sli.sli4.cq[num].eqid; in emlxs_mb_cq_create()
463 addr = hba->sli.sli4.cq[num].addr.phys; in emlxs_mb_cq_create()
488 qp2->params.request.CQContext.EQId = hba->sli.sli4.cq[num].eqid; in emlxs_mb_cq_create()
490 if ((hba->sli_intf & SLI_INTF_IF_TYPE_MASK) == in emlxs_mb_cq_create()
501 addr = hba->sli.sli4.cq[num].addr.phys; in emlxs_mb_cq_create()
521 emlxs_mb_get_port_name(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_mb_get_port_name() argument
542 if (hba->model_info.chip & EMLXS_BE_CHIPS) { in emlxs_mb_get_port_name()
562 emlxs_mb_get_sli4_params(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_mb_get_sli4_params() argument
592 emlxs_mb_get_extents_info(emlxs_hba_t *hba, MAILBOXQ *mbq, uint16_t type) in emlxs_mb_get_extents_info() argument
631 emlxs_mb_get_extents(emlxs_hba_t *hba, MAILBOXQ *mbq, uint16_t type) in emlxs_mb_get_extents() argument
670 emlxs_mb_alloc_extents(emlxs_hba_t *hba, MAILBOXQ *mbq, uint16_t type, in emlxs_mb_alloc_extents() argument
713 emlxs_mb_dealloc_extents(emlxs_hba_t *hba, MAILBOXQ *mbq, uint16_t type) in emlxs_mb_dealloc_extents() argument
752 emlxs_mb_wq_create(emlxs_hba_t *hba, MAILBOXQ *mbq, uint32_t num) in emlxs_mb_wq_create() argument
773 switch (hba->sli.sli4.param.WQV) { in emlxs_mb_wq_create()
786 addr = hba->sli.sli4.wq[num].addr.phys; in emlxs_mb_wq_create()
789 qp->params.request.CQId = hba->sli.sli4.wq[num].cqid; in emlxs_mb_wq_create()
813 addr = hba->sli.sli4.wq[num].addr.phys; in emlxs_mb_wq_create()
816 qp1->params.request.CQId = hba->sli.sli4.wq[num].cqid; in emlxs_mb_wq_create()
840 emlxs_mb_rq_create(emlxs_hba_t *hba, MAILBOXQ *mbq, uint32_t num) in emlxs_mb_rq_create() argument
860 switch (hba->sli.sli4.param.RQV) { in emlxs_mb_rq_create()
873 addr = hba->sli.sli4.rq[num].addr.phys; in emlxs_mb_rq_create()
880 hba->sli.sli4.rq[num].cqid; in emlxs_mb_rq_create()
901 addr = hba->sli.sli4.rq[num].addr.phys; in emlxs_mb_rq_create()
911 hba->sli.sli4.rq[num].cqid; in emlxs_mb_rq_create()
928 emlxs_mb_mq_create(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_mb_mq_create() argument
955 addr = hba->sli.sli4.mq.addr.phys; in emlxs_mb_mq_create()
960 qp->params.request.MQContext.CQId = hba->sli.sli4.mq.cqid; in emlxs_mb_mq_create()
974 emlxs_mb_mq_create_ext(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_mb_mq_create_ext() argument
994 switch (hba->sli.sli4.param.MQV) { in emlxs_mb_mq_create_ext()
1007 addr = hba->sli.sli4.mq.addr.phys; in emlxs_mb_mq_create_ext()
1016 qp->params.request.context.CQId = hba->sli.sli4.mq.cqid; in emlxs_mb_mq_create_ext()
1036 addr = hba->sli.sli4.mq.addr.phys; in emlxs_mb_mq_create_ext()
1046 qp1->params.request.CQId = hba->sli.sli4.mq.cqid; in emlxs_mb_mq_create_ext()
1061 emlxs_mb_async_event(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_mb_async_event() argument
1069 mb->un.varWords[0] = hba->channel_els; in emlxs_mb_async_event()
1080 emlxs_mb_heartbeat(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_mb_heartbeat() argument
1098 emlxs_mb_gpio_write(emlxs_hba_t *hba, MAILBOXQ *mbq, uint8_t pin, uint8_t val) in emlxs_mb_gpio_write() argument
1135 emlxs_mb_config_msi(emlxs_hba_t *hba, MAILBOXQ *mbq, uint32_t *intr_map, in emlxs_mb_config_msi() argument
1216 emlxs_mb_config_msix(emlxs_hba_t *hba, MAILBOXQ *mbq, uint32_t *intr_map, in emlxs_mb_config_msix() argument
1300 emlxs_mb_reset_ring(emlxs_hba_t *hba, MAILBOXQ *mbq, uint32_t ringno) in emlxs_mb_reset_ring() argument
1319 emlxs_mb_dump_vpd(emlxs_hba_t *hba, MAILBOXQ *mbq, uint32_t offset) in emlxs_mb_dump_vpd() argument
1322 if (hba->sli_mode == EMLXS_HBA_SLI4_MODE) { in emlxs_mb_dump_vpd()
1326 bzero(hba->sli.sli4.dump_region.virt, in emlxs_mb_dump_vpd()
1327 hba->sli.sli4.dump_region.size); in emlxs_mb_dump_vpd()
1336 mb4->un.varDmp4.available_cnt = hba->sli.sli4.dump_region.size; in emlxs_mb_dump_vpd()
1338 PADDR_HI(hba->sli.sli4.dump_region.phys); in emlxs_mb_dump_vpd()
1340 PADDR_LO(hba->sli.sli4.dump_region.phys); in emlxs_mb_dump_vpd()
1373 emlxs_mb_dump_fcoe(emlxs_hba_t *hba, MAILBOXQ *mbq, uint32_t offset) in emlxs_mb_dump_fcoe() argument
1377 if (hba->sli_mode < EMLXS_HBA_SLI4_MODE) { in emlxs_mb_dump_fcoe()
1382 bzero(hba->sli.sli4.dump_region.virt, in emlxs_mb_dump_fcoe()
1383 hba->sli.sli4.dump_region.size); in emlxs_mb_dump_fcoe()
1392 mb4->un.varDmp4.available_cnt = hba->sli.sli4.dump_region.size; in emlxs_mb_dump_fcoe()
1394 PADDR_HI(hba->sli.sli4.dump_region.phys); in emlxs_mb_dump_fcoe()
1396 PADDR_LO(hba->sli.sli4.dump_region.phys); in emlxs_mb_dump_fcoe()
1409 emlxs_mb_dump(emlxs_hba_t *hba, MAILBOXQ *mbq, uint32_t offset, uint32_t words) in emlxs_mb_dump() argument
1412 if (hba->sli_mode == EMLXS_HBA_SLI4_MODE) { in emlxs_mb_dump()
1416 bzero(hba->sli.sli4.dump_region.virt, in emlxs_mb_dump()
1417 hba->sli.sli4.dump_region.size); in emlxs_mb_dump()
1427 hba->sli.sli4.dump_region.size); in emlxs_mb_dump()
1429 PADDR_HI(hba->sli.sli4.dump_region.phys); in emlxs_mb_dump()
1431 PADDR_LO(hba->sli.sli4.dump_region.phys); in emlxs_mb_dump()
1465 emlxs_mb_read_nv(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_mb_read_nv() argument
1484 emlxs_mb_read_rev(emlxs_hba_t *hba, MAILBOXQ *mbq, uint32_t v3) in emlxs_mb_read_rev() argument
1488 if (hba->sli_mode == EMLXS_HBA_SLI4_MODE) { in emlxs_mb_read_rev()
1514 emlxs_mb_run_biu_diag(emlxs_hba_t *hba, MAILBOXQ *mbq, uint64_t out, in emlxs_mb_run_biu_diag() argument
1538 emlxs_mb_retry(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_mb_retry() argument
1544 mbox = (MAILBOX *)emlxs_mem_get(hba, MEM_MBOX); in emlxs_mb_retry()
1563 hba->mbox_mbq = NULL; in emlxs_mb_retry()
1564 hba->mbox_queue_flag = 0; in emlxs_mb_retry()
1568 rc = EMLXS_SLI_ISSUE_MBOX_CMD(hba, mbox, MBX_NOWAIT, 0); in emlxs_mb_retry()
1570 emlxs_mem_put(hba, MEM_MBOX, (void *)mbox); in emlxs_mb_retry()
1579 emlxs_read_la_mbcmpl(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_read_la_mbcmpl() argument
1594 (void) emlxs_mb_read_la(hba, mbq); in emlxs_read_la_mbcmpl()
1596 emlxs_mb_retry(hba, mbq); in emlxs_read_la_mbcmpl()
1602 if (!(hba->sli.sli3.hc_copy & HC_LAINT_ENA)) { in emlxs_read_la_mbcmpl()
1603 hba->sli.sli3.hc_copy |= HC_LAINT_ENA; in emlxs_read_la_mbcmpl()
1604 WRITE_CSR_REG(hba, FC_HC_REG(hba), in emlxs_read_la_mbcmpl()
1605 hba->sli.sli3.hc_copy); in emlxs_read_la_mbcmpl()
1608 EMLXS_CHK_ACC_HANDLE(hba, in emlxs_read_la_mbcmpl()
1609 hba->sli.sli3.csr_acc_handle); in emlxs_read_la_mbcmpl()
1628 (uint32_t)hba->link_event_tag, in emlxs_read_la_mbcmpl()
1634 (uint32_t)hba->link_event_tag, in emlxs_read_la_mbcmpl()
1640 hba->flag |= FC_BYPASSED_MODE; in emlxs_read_la_mbcmpl()
1642 hba->flag &= ~FC_BYPASSED_MODE; in emlxs_read_la_mbcmpl()
1645 if (hba->link_event_tag == la.eventTag) { in emlxs_read_la_mbcmpl()
1647 } else if (hba->link_event_tag + 1 < la.eventTag) { in emlxs_read_la_mbcmpl()
1651 emlxs_linkdown(hba); in emlxs_read_la_mbcmpl()
1654 hba->link_event_tag = la.eventTag; in emlxs_read_la_mbcmpl()
1658 if ((la.attType == AT_LINK_UP) && (hba->state < FC_LINK_UP)) { in emlxs_read_la_mbcmpl()
1661 if (hba->model_info.vendor_id == PCI_VENDOR_ID_EMULEX && in emlxs_read_la_mbcmpl()
1662 hba->model_info.device_id == PCI_DEVICE_ID_HORNET && in emlxs_read_la_mbcmpl()
1663 (hba->flag & (FC_ILB_MODE | FC_ELB_MODE))) { in emlxs_read_la_mbcmpl()
1672 hba->linkspeed = la.UlnkSpeed; in emlxs_read_la_mbcmpl()
1676 if ((hba->linkspeed == 0) && in emlxs_read_la_mbcmpl()
1677 (hba->model_info.chip & EMLXS_DRAGONFLY_CHIP)) { in emlxs_read_la_mbcmpl()
1678 hba->linkspeed = LA_1GHZ_LINK; in emlxs_read_la_mbcmpl()
1681 if ((hba->topology = la.topology) == TOPOLOGY_LOOP) { in emlxs_read_la_mbcmpl()
1685 if (hba->flag & FC_SLIM2_MODE) { in emlxs_read_la_mbcmpl()
1732 if (hba->model_info.vendor_id == PCI_VENDOR_ID_EMULEX && in emlxs_read_la_mbcmpl()
1733 hba->model_info.device_id == PCI_DEVICE_ID_HORNET) { in emlxs_read_la_mbcmpl()
1740 hba->flag |= FC_MENLO_MODE; in emlxs_read_la_mbcmpl()
1754 emlxs_thread_spawn(hba, in emlxs_read_la_mbcmpl()
1761 if ((mbox = (MAILBOXQ *)emlxs_mem_get(hba, in emlxs_read_la_mbcmpl()
1765 emlxs_mb_set_var(hba, mbox, 0x00052198, 0x1); in emlxs_read_la_mbcmpl()
1767 emlxs_mb_put(hba, mbox); in emlxs_read_la_mbcmpl()
1770 if ((mbox = (MAILBOXQ *)emlxs_mem_get(hba, in emlxs_read_la_mbcmpl()
1774 if (emlxs_mb_read_sparam(hba, mbox) == 0) { in emlxs_read_la_mbcmpl()
1775 emlxs_mb_put(hba, mbox); in emlxs_read_la_mbcmpl()
1777 emlxs_mem_put(hba, MEM_MBOX, in emlxs_read_la_mbcmpl()
1782 if ((mbox = (MAILBOXQ *)emlxs_mem_get(hba, in emlxs_read_la_mbcmpl()
1784 emlxs_mb_config_link(hba, mbox); in emlxs_read_la_mbcmpl()
1786 emlxs_mb_put(hba, mbox); in emlxs_read_la_mbcmpl()
1790 emlxs_linkup(hba); in emlxs_read_la_mbcmpl()
1796 emlxs_linkdown(hba); in emlxs_read_la_mbcmpl()
1802 if (!(hba->sli.sli3.hc_copy & HC_LAINT_ENA)) { in emlxs_read_la_mbcmpl()
1803 hba->sli.sli3.hc_copy |= HC_LAINT_ENA; in emlxs_read_la_mbcmpl()
1804 WRITE_CSR_REG(hba, FC_HC_REG(hba), hba->sli.sli3.hc_copy); in emlxs_read_la_mbcmpl()
1807 EMLXS_CHK_ACC_HANDLE(hba, hba->sli.sli3.csr_acc_handle); in emlxs_read_la_mbcmpl()
1819 emlxs_mb_read_la(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_mb_read_la() argument
1826 if ((mp = (MATCHMAP *)emlxs_mem_get(hba, MEM_BUF)) == 0) { in emlxs_mb_read_la()
1852 emlxs_clear_la_mbcmpl(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_clear_la_mbcmpl() argument
1868 if ((mbox = (MAILBOXQ *)emlxs_mem_get(hba, in emlxs_clear_la_mbcmpl()
1871 if (emlxs_mb_read_la(hba, mbox) == 0) { in emlxs_clear_la_mbcmpl()
1872 rc = EMLXS_SLI_ISSUE_MBOX_CMD(hba, in emlxs_clear_la_mbcmpl()
1876 emlxs_mem_put(hba, in emlxs_clear_la_mbcmpl()
1881 emlxs_mem_put(hba, MEM_MBOX, in emlxs_clear_la_mbcmpl()
1889 if (!(hba->sli.sli3.hc_copy & HC_LAINT_ENA)) { in emlxs_clear_la_mbcmpl()
1891 hba->sli.sli3.hc_copy |= HC_LAINT_ENA; in emlxs_clear_la_mbcmpl()
1892 WRITE_CSR_REG(hba, FC_HC_REG(hba), in emlxs_clear_la_mbcmpl()
1893 hba->sli.sli3.hc_copy); in emlxs_clear_la_mbcmpl()
1896 EMLXS_CHK_ACC_HANDLE(hba, in emlxs_clear_la_mbcmpl()
1897 hba->sli.sli3.csr_acc_handle); in emlxs_clear_la_mbcmpl()
1901 if (hba->sli.sli3.hc_copy & HC_LAINT_ENA) { in emlxs_clear_la_mbcmpl()
1903 hba->sli.sli3.hc_copy &= ~HC_LAINT_ENA; in emlxs_clear_la_mbcmpl()
1904 WRITE_CSR_REG(hba, FC_HC_REG(hba), in emlxs_clear_la_mbcmpl()
1905 hba->sli.sli3.hc_copy); in emlxs_clear_la_mbcmpl()
1908 EMLXS_CHK_ACC_HANDLE(hba, in emlxs_clear_la_mbcmpl()
1909 hba->sli.sli3.csr_acc_handle); in emlxs_clear_la_mbcmpl()
1920 if (!(hba->sli.sli3.hc_copy & HC_LAINT_ENA)) { in emlxs_clear_la_mbcmpl()
1921 hba->sli.sli3.hc_copy |= HC_LAINT_ENA; in emlxs_clear_la_mbcmpl()
1922 WRITE_CSR_REG(hba, FC_HC_REG(hba), hba->sli.sli3.hc_copy); in emlxs_clear_la_mbcmpl()
1925 EMLXS_CHK_ACC_HANDLE(hba, hba->sli.sli3.csr_acc_handle); in emlxs_clear_la_mbcmpl()
1929 if (hba->state >= FC_LINK_UP) { in emlxs_clear_la_mbcmpl()
1930 EMLXS_STATE_CHANGE_LOCKED(hba, FC_READY); in emlxs_clear_la_mbcmpl()
1936 if (hba->state == FC_READY) { in emlxs_clear_la_mbcmpl()
1951 EMLXS_SLI_ISSUE_IOCB_CMD(hba, &hba->chan[hba->channel_fcp], 0); in emlxs_clear_la_mbcmpl()
1960 emlxs_mb_clear_la(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_mb_clear_la() argument
1965 emlxs_rpi_check(hba); in emlxs_mb_clear_la()
1970 mb->un.varClearLA.eventTag = hba->link_event_tag; in emlxs_mb_clear_la()
1986 emlxs_mb_read_status(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_mb_read_status() argument
2005 emlxs_mb_read_lnk_stat(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_mb_read_lnk_stat() argument
2030 emlxs_mb_config_ring(emlxs_hba_t *hba, int32_t ring, MAILBOXQ *mbq) in emlxs_mb_config_ring() argument
2040 j += hba->sli.sli3.ring_masks[i]; in emlxs_mb_config_ring()
2043 for (i = 0; i < hba->sli.sli3.ring_masks[ring]; i++) { in emlxs_mb_config_ring()
2049 hba->sli.sli3.ring_rval[j + i]; in emlxs_mb_config_ring()
2051 hba->sli.sli3.ring_rmask[j + i]; in emlxs_mb_config_ring()
2053 hba->sli.sli3.ring_tval[j + i]; in emlxs_mb_config_ring()
2055 hba->sli.sli3.ring_tmask[j + i]; in emlxs_mb_config_ring()
2063 mb->un.varCfgRing.numMask = hba->sli.sli3.ring_masks[ring]; in emlxs_mb_config_ring()
2078 emlxs_mb_config_link(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_mb_config_link() argument
2101 mb->un.varCfgLnk.edtov = hba->fc_edtov; in emlxs_mb_config_link()
2102 mb->un.varCfgLnk.arbtov = hba->fc_arbtov; in emlxs_mb_config_link()
2103 mb->un.varCfgLnk.ratov = hba->fc_ratov; in emlxs_mb_config_link()
2104 mb->un.varCfgLnk.rttov = hba->fc_rttov; in emlxs_mb_config_link()
2105 mb->un.varCfgLnk.altov = hba->fc_altov; in emlxs_mb_config_link()
2106 mb->un.varCfgLnk.crtov = hba->fc_crtov; in emlxs_mb_config_link()
2119 emlxs_init_link_mbcmpl(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_init_link_mbcmpl() argument
2127 if ((hba->flag & FC_SLIM2_MODE) && in emlxs_init_link_mbcmpl()
2128 (hba->mbox_queue_flag == MBX_NOWAIT)) { in emlxs_init_link_mbcmpl()
2145 emlxs_mb_retry(hba, mbq); in emlxs_init_link_mbcmpl()
2159 emlxs_mb_init_link(emlxs_hba_t *hba, MAILBOXQ *mbq, uint32_t topology, in emlxs_mb_init_link() argument
2166 if ((hba->sli_mode == EMLXS_HBA_SLI4_MODE) && in emlxs_mb_init_link()
2259 if (hba->sli_mode == 3) { in emlxs_mb_init_link()
2281 emlxs_mb_down_link(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_mb_down_link() argument
2298 emlxs_read_sparam_mbcmpl(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_read_sparam_mbcmpl() argument
2313 (void) emlxs_mb_read_sparam(hba, mbq); in emlxs_read_sparam_mbcmpl()
2315 emlxs_mb_retry(hba, mbq); in emlxs_read_sparam_mbcmpl()
2325 bcopy((caddr_t)mp->virt, (caddr_t)&hba->sparam, sizeof (SERV_PARM)); in emlxs_read_sparam_mbcmpl()
2329 if ((bcmp((caddr_t)&hba->wwnn, (caddr_t)null_wwn, 8) == 0) && in emlxs_read_sparam_mbcmpl()
2330 (bcmp((caddr_t)&hba->wwpn, (caddr_t)null_wwn, 8) == 0)) { in emlxs_read_sparam_mbcmpl()
2331 bcopy((caddr_t)&hba->sparam.nodeName, in emlxs_read_sparam_mbcmpl()
2332 (caddr_t)&hba->wwnn, sizeof (NAME_TYPE)); in emlxs_read_sparam_mbcmpl()
2334 bcopy((caddr_t)&hba->sparam.portName, in emlxs_read_sparam_mbcmpl()
2335 (caddr_t)&hba->wwpn, sizeof (NAME_TYPE)); in emlxs_read_sparam_mbcmpl()
2337 bcopy((caddr_t)&hba->wwnn, in emlxs_read_sparam_mbcmpl()
2338 (caddr_t)&hba->sparam.nodeName, sizeof (NAME_TYPE)); in emlxs_read_sparam_mbcmpl()
2340 bcopy((caddr_t)&hba->wwpn, in emlxs_read_sparam_mbcmpl()
2341 (caddr_t)&hba->sparam.portName, sizeof (NAME_TYPE)); in emlxs_read_sparam_mbcmpl()
2346 hba->fc_edtov, hba->sparam.cmn.e_d_tov, in emlxs_read_sparam_mbcmpl()
2347 hba->sparam.cmn.bbCreditlsb); in emlxs_read_sparam_mbcmpl()
2350 bcopy((caddr_t)&hba->sparam, (caddr_t)&port->sparam, in emlxs_read_sparam_mbcmpl()
2352 bcopy((caddr_t)&hba->wwpn, (caddr_t)&port->wwpn, in emlxs_read_sparam_mbcmpl()
2354 bcopy((caddr_t)&hba->wwnn, (caddr_t)&port->wwnn, in emlxs_read_sparam_mbcmpl()
2364 bcopy((caddr_t)&hba->sparam, in emlxs_read_sparam_mbcmpl()
2386 emlxs_mb_read_sparam(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_mb_read_sparam() argument
2393 if ((mp = (MATCHMAP *)emlxs_mem_get(hba, MEM_BUF)) == 0) { in emlxs_mb_read_sparam()
2422 emlxs_mb_read_rpi(emlxs_hba_t *hba, uint32_t rpi, MAILBOXQ *mbq, in emlxs_mb_read_rpi() argument
2448 emlxs_mb_read_xri(emlxs_hba_t *hba, uint32_t xri, MAILBOXQ *mbq, in emlxs_mb_read_xri() argument
2471 emlxs_mb_check_sparm(emlxs_hba_t *hba, SERV_PARM *nsp) in emlxs_mb_check_sparm() argument
2531 emlxs_mb_set_var(emlxs_hba_t *hba, MAILBOXQ *mbq, uint32_t addr, in emlxs_mb_set_var() argument
2564 emlxs_disable_tc(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_disable_tc() argument
2582 emlxs_mb_config_hbq(emlxs_hba_t *hba, MAILBOXQ *mbq, int hbq_id) in emlxs_mb_config_hbq() argument
2590 hbq = &hba->sli.sli3.hbq_table[hbq_id]; in emlxs_mb_config_hbq()
2638 emlxs_reg_vpi_mbcmpl(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_reg_vpi_mbcmpl() argument
2674 emlxs_hba_t *hba = HBA; in emlxs_mb_reg_vpi() local
2679 if (hba->sli_mode > EMLXS_HBA_SLI3_MODE) { in emlxs_mb_reg_vpi()
2683 if (!(hba->flag & FC_NPIV_ENABLED)) { in emlxs_mb_reg_vpi()
2700 if (hba->state != FC_READY) { in emlxs_mb_reg_vpi()
2719 if (!(mbq = (MAILBOXQ *)emlxs_mem_get(hba, MEM_MBOX))) { in emlxs_mb_reg_vpi()
2748 rval = EMLXS_SLI_ISSUE_MBOX_CMD(hba, mbq, MBX_NOWAIT, 0); in emlxs_mb_reg_vpi()
2754 emlxs_mem_put(hba, MEM_MBOX, (void *)mbq); in emlxs_mb_reg_vpi()
2765 emlxs_unreg_vpi_mbcmpl(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_unreg_vpi_mbcmpl() argument
2795 emlxs_hba_t *hba = HBA; in emlxs_mb_unreg_vpi() local
2800 if (hba->sli_mode > EMLXS_HBA_SLI3_MODE) { in emlxs_mb_unreg_vpi()
2817 if (!(mbq = (MAILBOXQ *)emlxs_mem_get(hba, MEM_MBOX))) { in emlxs_mb_unreg_vpi()
2843 rval = EMLXS_SLI_ISSUE_MBOX_CMD(hba, mbq, MBX_NOWAIT, 0); in emlxs_mb_unreg_vpi()
2849 emlxs_mem_put(hba, MEM_MBOX, (void *)mbq); in emlxs_mb_unreg_vpi()
2862 emlxs_mb_config_farp(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_mb_config_farp() argument
2868 bcopy((uint8_t *)&hba->wwpn, in emlxs_mb_config_farp()
2871 bcopy((uint8_t *)&hba->wwpn, in emlxs_mb_config_farp()
2890 emlxs_mb_read_config(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_mb_read_config() argument
2894 if (hba->sli_mode == EMLXS_HBA_SLI4_MODE) { in emlxs_mb_read_config()
2926 emlxs_mb_put(emlxs_hba_t *hba, MAILBOXQ *mbq) in emlxs_mb_put() argument
2931 if (hba->mbox_queue.q_first) { in emlxs_mb_put()
2936 ((MAILBOXQ *)hba->mbox_queue.q_last)->next = mbq; in emlxs_mb_put()
2937 hba->mbox_queue.q_last = (uint8_t *)mbq; in emlxs_mb_put()
2938 hba->mbox_queue.q_cnt++; in emlxs_mb_put()
2944 hba->mbox_queue.q_first = (uint8_t *)mbq; in emlxs_mb_put()
2945 hba->mbox_queue.q_last = (uint8_t *)mbq; in emlxs_mb_put()
2946 hba->mbox_queue.q_cnt = 1; in emlxs_mb_put()
2971 emlxs_mb_get(emlxs_hba_t *hba) in emlxs_mb_get() argument
2977 if (hba->mbox_queue.q_first) { in emlxs_mb_get()
2978 p_first = (MAILBOXQ *)hba->mbox_queue.q_first; in emlxs_mb_get()
2979 hba->mbox_queue.q_first = (uint8_t *)p_first->next; in emlxs_mb_get()
2981 if (hba->mbox_queue.q_first == NULL) { in emlxs_mb_get()
2982 hba->mbox_queue.q_last = NULL; in emlxs_mb_get()
2983 hba->mbox_queue.q_cnt = 0; in emlxs_mb_get()
2985 hba->mbox_queue.q_cnt--; in emlxs_mb_get()
3000 emlxs_mb_init(emlxs_hba_t *hba, MAILBOXQ *mbq, uint32_t flag, uint32_t tmo) in emlxs_mb_init() argument
3005 hba->mbox_queue_flag = flag; in emlxs_mb_init()
3008 if (hba->timer_tics) { in emlxs_mb_init()
3009 hba->mbox_timer = hba->timer_tics + tmo; in emlxs_mb_init()
3011 hba->mbox_timer = DRV_TIME + tmo; in emlxs_mb_init()
3019 hba->mbox_mbq = (void *)mbq; in emlxs_mb_init()
3039 emlxs_mb_fini(emlxs_hba_t *hba, MAILBOX *mb, uint32_t mbxStatus) in emlxs_mb_fini() argument
3053 if (hba->mbox_queue_flag) { in emlxs_mb_fini()
3064 mbox_queue_flag = hba->mbox_queue_flag; in emlxs_mb_fini()
3065 mbox_mbq = (MAILBOXQ *)hba->mbox_mbq; in emlxs_mb_fini()
3081 hba->mbox_mbq = NULL; in emlxs_mb_fini()
3082 hba->mbox_queue_flag = 0; in emlxs_mb_fini()
3083 hba->mbox_timer = 0; in emlxs_mb_fini()
3100 emlxs_mem_put(hba, MEM_BUF, (void *)mbox_bp); in emlxs_mb_fini()
3103 emlxs_mem_put(hba, MEM_BUF, in emlxs_mb_fini()
3107 emlxs_mem_put(hba, MEM_MBOX, in emlxs_mb_fini()
3115 if (hba->sli_mode == EMLXS_HBA_SLI4_MODE) { in emlxs_mb_fini()
3152 emlxs_hba_t *hba = HBA; in emlxs_mb_deferred_cmpl() local
3205 emlxs_proc_channel_event(hba, iocbq->channel, in emlxs_mb_deferred_cmpl()
3208 EMLXS_SLI_ISSUE_IOCB_CMD(hba, iocbq->channel, in emlxs_mb_deferred_cmpl()
3219 emlxs_mb_flush(emlxs_hba_t *hba) in emlxs_mb_flush() argument
3224 mbxStatus = (hba->flag & FC_HARDWARE_ERROR) ? in emlxs_mb_flush()
3228 emlxs_mb_fini(hba, NULL, mbxStatus); in emlxs_mb_flush()
3231 while (mbq = (MAILBOXQ *)emlxs_mb_get(hba)) { in emlxs_mb_flush()
3233 hba->mbox_queue_flag = MBX_NOWAIT; in emlxs_mb_flush()
3234 hba->mbox_mbq = (void *)mbq; in emlxs_mb_flush()
3237 emlxs_mb_fini(hba, NULL, mbxStatus); in emlxs_mb_flush()