Lines Matching defs:bfa
90 bfa_com_port_attach(struct bfa_s *bfa)
92 struct bfa_port_s *port = &bfa->modules.port;
93 struct bfa_mem_dma_s *port_dma = BFA_MEM_PORT_DMA(bfa);
95 bfa_port_attach(port, &bfa->ioc, bfa, bfa->trcmod);
103 bfa_com_ablk_attach(struct bfa_s *bfa)
105 struct bfa_ablk_s *ablk = &bfa->modules.ablk;
106 struct bfa_mem_dma_s *ablk_dma = BFA_MEM_ABLK_DMA(bfa);
108 bfa_ablk_attach(ablk, &bfa->ioc);
113 bfa_com_cee_attach(struct bfa_s *bfa)
115 struct bfa_cee_s *cee = &bfa->modules.cee;
116 struct bfa_mem_dma_s *cee_dma = BFA_MEM_CEE_DMA(bfa);
118 cee->trcmod = bfa->trcmod;
119 bfa_cee_attach(cee, &bfa->ioc, bfa);
124 bfa_com_sfp_attach(struct bfa_s *bfa)
126 struct bfa_sfp_s *sfp = BFA_SFP_MOD(bfa);
127 struct bfa_mem_dma_s *sfp_dma = BFA_MEM_SFP_DMA(bfa);
129 bfa_sfp_attach(sfp, &bfa->ioc, bfa, bfa->trcmod);
134 bfa_com_flash_attach(struct bfa_s *bfa, bfa_boolean_t mincfg)
136 struct bfa_flash_s *flash = BFA_FLASH(bfa);
137 struct bfa_mem_dma_s *flash_dma = BFA_MEM_FLASH_DMA(bfa);
139 bfa_flash_attach(flash, &bfa->ioc, bfa, bfa->trcmod, mincfg);
145 bfa_com_diag_attach(struct bfa_s *bfa)
147 struct bfa_diag_s *diag = BFA_DIAG_MOD(bfa);
148 struct bfa_mem_dma_s *diag_dma = BFA_MEM_DIAG_DMA(bfa);
150 bfa_diag_attach(diag, &bfa->ioc, bfa, bfa_fcport_beacon, bfa->trcmod);
155 bfa_com_phy_attach(struct bfa_s *bfa, bfa_boolean_t mincfg)
157 struct bfa_phy_s *phy = BFA_PHY(bfa);
158 struct bfa_mem_dma_s *phy_dma = BFA_MEM_PHY_DMA(bfa);
160 bfa_phy_attach(phy, &bfa->ioc, bfa, bfa->trcmod, mincfg);
165 bfa_com_fru_attach(struct bfa_s *bfa, bfa_boolean_t mincfg)
167 struct bfa_fru_s *fru = BFA_FRU(bfa);
168 struct bfa_mem_dma_s *fru_dma = BFA_MEM_FRU_DMA(bfa);
170 bfa_fru_attach(fru, &bfa->ioc, bfa, bfa->trcmod, mincfg);
234 static void bfa_iocfc_start_submod(struct bfa_s *bfa);
235 static void bfa_iocfc_disable_submod(struct bfa_s *bfa);
255 bfa_trc(iocfc->bfa, event);
263 bfa_sm_fault(iocfc->bfa, event);
271 bfa_ioc_enable(&iocfc->bfa->ioc);
277 bfa_trc(iocfc->bfa, event);
296 bfa_sm_fault(iocfc->bfa, event);
304 bfa_dconf_modinit(iocfc->bfa);
310 bfa_trc(iocfc->bfa, event);
329 bfa_sm_fault(iocfc->bfa, event);
337 bfa_iocfc_send_cfg(iocfc->bfa);
343 bfa_trc(iocfc->bfa, event);
362 bfa_sm_fault(iocfc->bfa, event);
370 iocfc->bfa->iocfc.op_status = BFA_STATUS_OK;
371 bfa_cb_queue(iocfc->bfa, &iocfc->bfa->iocfc.init_hcb_qe,
372 bfa_iocfc_init_cb, iocfc->bfa);
378 bfa_trc(iocfc->bfa, event);
394 bfa_sm_fault(iocfc->bfa, event);
402 bfa_fcport_init(iocfc->bfa);
403 bfa_iocfc_start_submod(iocfc->bfa);
409 bfa_trc(iocfc->bfa, event);
422 bfa_sm_fault(iocfc->bfa, event);
430 bfa_dconf_modexit(iocfc->bfa);
436 bfa_trc(iocfc->bfa, event);
444 bfa_sm_fault(iocfc->bfa, event);
452 bfa_ioc_disable(&iocfc->bfa->ioc);
458 bfa_trc(iocfc->bfa, event);
462 bfa_isr_disable(iocfc->bfa);
463 bfa_iocfc_disable_submod(iocfc->bfa);
465 iocfc->bfa->iocfc.op_status = BFA_STATUS_OK;
466 bfa_cb_queue(iocfc->bfa, &iocfc->bfa->iocfc.stop_hcb_qe,
467 bfa_iocfc_stop_cb, iocfc->bfa);
476 bfa_sm_fault(iocfc->bfa, event);
484 bfa_ioc_enable(&iocfc->bfa->ioc);
490 bfa_trc(iocfc->bfa, event);
508 if (iocfc->bfa->iocfc.cb_reqd == BFA_FALSE)
511 iocfc->bfa->iocfc.op_status = BFA_STATUS_FAILED;
512 bfa_cb_queue(iocfc->bfa, &iocfc->bfa->iocfc.en_hcb_qe,
513 bfa_iocfc_enable_cb, iocfc->bfa);
514 iocfc->bfa->iocfc.cb_reqd = BFA_FALSE;
517 bfa_sm_fault(iocfc->bfa, event);
525 bfa_iocfc_send_cfg(iocfc->bfa);
531 bfa_trc(iocfc->bfa, event);
536 if (iocfc->bfa->iocfc.cb_reqd == BFA_FALSE)
539 iocfc->bfa->iocfc.op_status = BFA_STATUS_OK;
540 bfa_cb_queue(iocfc->bfa, &iocfc->bfa->iocfc.en_hcb_qe,
541 bfa_iocfc_enable_cb, iocfc->bfa);
542 iocfc->bfa->iocfc.cb_reqd = BFA_FALSE;
553 if (iocfc->bfa->iocfc.cb_reqd == BFA_FALSE)
556 iocfc->bfa->iocfc.op_status = BFA_STATUS_FAILED;
557 bfa_cb_queue(iocfc->bfa, &iocfc->bfa->iocfc.en_hcb_qe,
558 bfa_iocfc_enable_cb, iocfc->bfa);
559 iocfc->bfa->iocfc.cb_reqd = BFA_FALSE;
562 bfa_sm_fault(iocfc->bfa, event);
570 bfa_ioc_disable(&iocfc->bfa->ioc);
576 bfa_trc(iocfc->bfa, event);
587 bfa_sm_fault(iocfc->bfa, event);
595 bfa_isr_disable(iocfc->bfa);
596 bfa_iocfc_disable_submod(iocfc->bfa);
597 iocfc->bfa->iocfc.op_status = BFA_STATUS_OK;
598 bfa_cb_queue(iocfc->bfa, &iocfc->bfa->iocfc.dis_hcb_qe,
599 bfa_iocfc_disable_cb, iocfc->bfa);
605 bfa_trc(iocfc->bfa, event);
615 bfa_sm_fault(iocfc->bfa, event);
623 bfa_isr_disable(iocfc->bfa);
624 bfa_iocfc_disable_submod(iocfc->bfa);
630 bfa_trc(iocfc->bfa, event);
645 bfa_sm_fault(iocfc->bfa, event);
653 bfa_isr_disable(iocfc->bfa);
654 iocfc->bfa->iocfc.op_status = BFA_STATUS_FAILED;
655 bfa_cb_queue(iocfc->bfa, &iocfc->bfa->iocfc.init_hcb_qe,
656 bfa_iocfc_init_cb, iocfc->bfa);
662 bfa_trc(iocfc->bfa, event);
669 bfa_ioc_disable(&iocfc->bfa->ioc);
676 iocfc->bfa->iocfc.op_status = BFA_STATUS_OK;
677 bfa_cb_queue(iocfc->bfa, &iocfc->bfa->iocfc.dis_hcb_qe,
678 bfa_iocfc_disable_cb, iocfc->bfa);
683 bfa_sm_fault(iocfc->bfa, event);
692 bfa_reqq_resume(struct bfa_s *bfa, int qid)
697 waitq = bfa_reqq(bfa, qid);
702 if (bfa_reqq_full(bfa, qid))
712 bfa_isr_rspq(struct bfa_s *bfa, int qid)
719 ci = bfa_rspq_ci(bfa, qid);
720 pi = bfa_rspq_pi(bfa, qid);
725 m = bfa_rspq_elem(bfa, qid, ci);
728 bfa_isrs[m->mhdr.msg_class] (bfa, m);
729 CQ_INCR(ci, bfa->iocfc.cfg.drvcfg.num_rspq_elems);
735 bfa_isr_rspq_ack(bfa, qid, ci);
740 waitq = bfa_reqq(bfa, qid);
742 bfa_reqq_resume(bfa, qid);
748 bfa_isr_reqq(struct bfa_s *bfa, int qid)
752 bfa_isr_reqq_ack(bfa, qid);
757 waitq = bfa_reqq(bfa, qid);
759 bfa_reqq_resume(bfa, qid);
763 bfa_msix_all(struct bfa_s *bfa, int vec)
768 intr = readl(bfa->iocfc.bfa_regs.intr_status);
776 if (qintr && bfa->queue_process) {
778 bfa_isr_rspq(bfa, queue);
789 if (qintr && bfa->queue_process) {
791 bfa_isr_reqq(bfa, queue);
797 bfa_msix_lpu_err(bfa, intr);
801 bfa_intx(struct bfa_s *bfa)
807 intr = readl(bfa->iocfc.bfa_regs.intr_status);
811 writel(qintr, bfa->iocfc.bfa_regs.intr_status);
816 if (bfa->queue_process) {
818 if (bfa_isr_rspq(bfa, queue))
829 if (qintr && bfa->queue_process) {
831 bfa_isr_reqq(bfa, queue);
837 if (bfa->intr_enabled)
838 bfa_msix_lpu_err(bfa, intr);
844 bfa_isr_enable(struct bfa_s *bfa)
847 int port_id = bfa_ioc_portid(&bfa->ioc);
849 bfa_trc(bfa, bfa_ioc_pcifn(&bfa->ioc));
850 bfa_trc(bfa, port_id);
852 bfa_msix_ctrl_install(bfa);
854 if (bfa_asic_id_ct2(bfa->ioc.pcidev.device_id)) {
863 writel(umsk, bfa->iocfc.bfa_regs.intr_status);
864 writel(~umsk, bfa->iocfc.bfa_regs.intr_mask);
865 bfa->iocfc.intr_mask = ~umsk;
866 bfa_isr_mode_set(bfa, bfa->msix.nvecs != 0);
871 bfa->intr_enabled = BFA_TRUE;
875 bfa_isr_disable(struct bfa_s *bfa)
877 bfa->intr_enabled = BFA_FALSE;
878 bfa_isr_mode_set(bfa, BFA_FALSE);
879 writel(-1L, bfa->iocfc.bfa_regs.intr_mask);
880 bfa_msix_uninstall(bfa);
884 bfa_msix_reqq(struct bfa_s *bfa, int vec)
886 bfa_isr_reqq(bfa, vec - bfa->iocfc.hwif.cpe_vec_q0);
890 bfa_isr_unhandled(struct bfa_s *bfa, struct bfi_msg_s *m)
892 bfa_trc(bfa, m->mhdr.msg_class);
893 bfa_trc(bfa, m->mhdr.msg_id);
894 bfa_trc(bfa, m->mhdr.mtag.i2htok);
896 bfa_trc_stop(bfa->trcmod);
900 bfa_msix_rspq(struct bfa_s *bfa, int vec)
902 bfa_isr_rspq(bfa, vec - bfa->iocfc.hwif.rme_vec_q0);
906 bfa_msix_lpu_err(struct bfa_s *bfa, int vec)
911 intr = readl(bfa->iocfc.bfa_regs.intr_status);
913 if (bfa_asic_id_ct2(bfa->ioc.pcidev.device_id)) {
920 halt_isr = bfa_asic_id_ct(bfa->ioc.pcidev.device_id) ?
928 bfa_ioc_mbox_isr(&bfa->ioc);
937 curr_value = readl(bfa->ioc.ioc_regs.ll_halt);
939 writel(curr_value, bfa->ioc.ioc_regs.ll_halt);
949 bfa->ioc.ioc_regs.pss_err_status_reg);
951 bfa->ioc.ioc_regs.pss_err_status_reg);
954 writel(intr, bfa->iocfc.bfa_regs.intr_status);
955 bfa_ioc_error_isr(&bfa->ioc);
973 struct bfa_s *bfa = bfa_arg;
974 struct bfa_iocfc_s *iocfc = &bfa->iocfc;
981 bfa_trc(bfa, cfg->fwcfg.num_cqs);
983 bfa_iocfc_reset_queues(bfa);
989 if (bfa->msix.nvecs == 1)
993 cfg_info->num_ioim_reqs = cpu_to_be16(bfa_fcpim_get_throttle_cfg(bfa,
1028 bfa_fn_lpu(bfa));
1031 bfa_ioc_mbox_send(&bfa->ioc, &cfg_req,
1036 bfa_iocfc_init_mem(struct bfa_s *bfa, void *bfad, struct bfa_iocfc_cfg_s *cfg,
1039 struct bfa_iocfc_s *iocfc = &bfa->iocfc;
1041 bfa->bfad = bfad;
1042 iocfc->bfa = bfa;
1048 if (bfa_asic_id_ctc(bfa_ioc_devid(&bfa->ioc))) {
1073 bfa_ioc_pcifn(&bfa->ioc) * BFI_IOC_MAX_CQS;
1075 bfa_ioc_pcifn(&bfa->ioc) * BFI_IOC_MAX_CQS;
1078 if (bfa_asic_id_ct2(bfa_ioc_devid(&bfa->ioc))) {
1084 iocfc->hwif.hw_reginit(bfa);
1085 bfa->msix.nvecs = 0;
1089 bfa_iocfc_mem_claim(struct bfa_s *bfa, struct bfa_iocfc_cfg_s *cfg)
1094 struct bfa_iocfc_s *iocfc = &bfa->iocfc;
1095 struct bfa_mem_dma_s *ioc_dma = BFA_MEM_IOC_DMA(bfa);
1096 struct bfa_mem_dma_s *iocfc_dma = BFA_MEM_IOCFC_DMA(bfa);
1100 bfa_ioc_mem_claim(&bfa->ioc, bfa_mem_dma_virt(ioc_dma),
1110 reqq_dma = BFA_MEM_REQQ_DMA(bfa, i);
1115 rspq_dma = BFA_MEM_RSPQ_DMA(bfa, i);
1138 bfa->iocfc.cfg_info.kva = dm_kva;
1139 bfa->iocfc.cfg_info.pa = dm_pa;
1140 bfa->iocfc.cfginfo = (struct bfi_iocfc_cfg_s *) dm_kva;
1145 bfa->iocfc.cfgrsp_dma.kva = dm_kva;
1146 bfa->iocfc.cfgrsp_dma.pa = dm_pa;
1147 bfa->iocfc.cfgrsp = (struct bfi_iocfc_cfgrsp_s *) dm_kva;
1154 bfa_ioc_debug_memclaim(&bfa->ioc, bfa_mem_kva_curp(iocfc));
1162 bfa_iocfc_start_submod(struct bfa_s *bfa)
1166 bfa->queue_process = BFA_TRUE;
1168 bfa_isr_rspq_ack(bfa, i, bfa_rspq_ci(bfa, i));
1170 bfa_fcport_start(bfa);
1171 bfa_uf_start(bfa);
1176 bfa_ioim_lm_init(BFA_FCP_MOD(bfa)->bfa);
1178 bfa->iocfc.submod_enabled = BFA_TRUE;
1185 bfa_iocfc_disable_submod(struct bfa_s *bfa)
1187 if (bfa->iocfc.submod_enabled == BFA_FALSE)
1190 bfa_fcdiag_iocdisable(bfa);
1191 bfa_fcport_iocdisable(bfa);
1192 bfa_fcxp_iocdisable(bfa);
1193 bfa_lps_iocdisable(bfa);
1194 bfa_rport_iocdisable(bfa);
1195 bfa_fcp_iocdisable(bfa);
1196 bfa_dconf_iocdisable(bfa);
1198 bfa->iocfc.submod_enabled = BFA_FALSE;
1204 struct bfa_s *bfa = bfa_arg;
1207 bfa_cb_init(bfa->bfad, bfa->iocfc.op_status);
1213 struct bfa_s *bfa = bfa_arg;
1214 struct bfad_s *bfad = bfa->bfad;
1223 struct bfa_s *bfa = bfa_arg;
1224 struct bfad_s *bfad = bfa->bfad;
1233 struct bfa_s *bfa = bfa_arg;
1234 struct bfad_s *bfad = bfa->bfad;
1244 bfa_iocfc_qreg(struct bfa_s *bfa, struct bfi_iocfc_qreg_s *qreg)
1247 struct bfa_iocfc_regs_s *r = &bfa->iocfc.bfa_regs;
1248 void __iomem *kva = bfa_ioc_bar0(&bfa->ioc);
1251 bfa->iocfc.hw_qid[i] = qreg->hw_qid[i];
1262 bfa_iocfc_res_recfg(struct bfa_s *bfa, struct bfa_iocfc_fwcfg_s *fwcfg)
1264 struct bfa_iocfc_s *iocfc = &bfa->iocfc;
1267 bfa_fcxp_res_recfg(bfa, fwcfg->num_fcxp_reqs);
1268 bfa_uf_res_recfg(bfa, fwcfg->num_uf_bufs);
1269 bfa_rport_res_recfg(bfa, fwcfg->num_rports);
1270 bfa_fcp_res_recfg(bfa, cpu_to_be16(cfg_info->num_ioim_reqs),
1272 bfa_tskim_res_recfg(bfa, fwcfg->num_tskim_reqs);
1279 bfa_iocfc_cfgrsp(struct bfa_s *bfa)
1281 struct bfa_iocfc_s *iocfc = &bfa->iocfc;
1296 bfa_iocfc_qreg(bfa, &cfgrsp->qreg);
1301 bfa_iocfc_res_recfg(bfa, fwcfg);
1306 bfa_msix_queue_install(bfa);
1308 if (bfa->iocfc.cfgrsp->pbc_cfg.pbc_pwwn != 0) {
1309 bfa->ioc.attr->pwwn = bfa->iocfc.cfgrsp->pbc_cfg.pbc_pwwn;
1310 bfa->ioc.attr->nwwn = bfa->iocfc.cfgrsp->pbc_cfg.pbc_nwwn;
1316 bfa_iocfc_reset_queues(struct bfa_s *bfa)
1321 bfa_reqq_ci(bfa, q) = 0;
1322 bfa_reqq_pi(bfa, q) = 0;
1323 bfa_rspq_ci(bfa, q) = 0;
1324 bfa_rspq_pi(bfa, q) = 0;
1332 bfa_iocfc_process_faa_addr(struct bfa_s *bfa, struct bfi_faa_addr_msg_s *msg)
1334 struct bfa_iocfc_s *iocfc = &bfa->iocfc;
1340 bfa->ioc.attr->pwwn = msg->pwwn;
1341 bfa->ioc.attr->nwwn = msg->nwwn;
1351 bfa_faa_validate_request(struct bfa_s *bfa)
1353 enum bfa_ioc_type_e ioc_type = bfa_get_type(bfa);
1354 u32 card_type = bfa->ioc.attr->card_type;
1356 if (bfa_ioc_is_operational(&bfa->ioc)) {
1367 bfa_faa_query(struct bfa_s *bfa, struct bfa_faa_attr_s *attr,
1371 struct bfa_iocfc_s *iocfc = &bfa->iocfc;
1374 status = bfa_faa_validate_request(bfa);
1388 BFI_IOCFC_H2I_FAA_QUERY_REQ, bfa_fn_lpu(bfa));
1390 bfa_ioc_mbox_send(&bfa->ioc, &faa_attr_req,
1423 struct bfa_s *bfa = bfa_arg;
1426 bfa_fsm_send_event(&bfa->iocfc, IOCFC_E_IOC_ENABLED);
1428 bfa_fsm_send_event(&bfa->iocfc, IOCFC_E_IOC_FAILED);
1437 struct bfa_s *bfa = bfa_arg;
1439 bfa->queue_process = BFA_FALSE;
1440 bfa_fsm_send_event(&bfa->iocfc, IOCFC_E_IOC_DISABLED);
1449 struct bfa_s *bfa = bfa_arg;
1451 bfa->queue_process = BFA_FALSE;
1452 bfa_fsm_send_event(&bfa->iocfc, IOCFC_E_IOC_FAILED);
1461 struct bfa_s *bfa = bfa_arg;
1463 bfa_iocfc_reset_queues(bfa);
1464 bfa_isr_enable(bfa);
1472 struct bfa_s *bfa)
1475 struct bfa_mem_dma_s *ioc_dma = BFA_MEM_IOC_DMA(bfa);
1476 struct bfa_mem_dma_s *iocfc_dma = BFA_MEM_IOCFC_DMA(bfa);
1477 struct bfa_mem_kva_s *iocfc_kva = BFA_MEM_IOCFC_KVA(bfa);
1491 bfa_mem_dma_setup(meminfo, BFA_MEM_REQQ_DMA(bfa, q),
1493 bfa_mem_dma_setup(meminfo, BFA_MEM_RSPQ_DMA(bfa, q),
1517 bfa_iocfc_attach(struct bfa_s *bfa, void *bfad, struct bfa_iocfc_cfg_s *cfg,
1521 struct bfa_ioc_s *ioc = &bfa->ioc;
1528 ioc->trcmod = bfa->trcmod;
1529 bfa_ioc_attach(&bfa->ioc, bfa, &bfa_iocfc_cbfn, &bfa->timer_mod);
1531 bfa_ioc_pci_init(&bfa->ioc, pcidev, BFI_PCIFN_CLASS_FC);
1532 bfa_ioc_mbox_register(&bfa->ioc, bfa_mbox_isrs);
1534 bfa_iocfc_init_mem(bfa, bfad, cfg, pcidev);
1535 bfa_iocfc_mem_claim(bfa, cfg);
1536 INIT_LIST_HEAD(&bfa->timer_mod.timer_q);
1538 INIT_LIST_HEAD(&bfa->comp_q);
1540 INIT_LIST_HEAD(&bfa->reqq_waitq[i]);
1542 bfa->iocfc.cb_reqd = BFA_FALSE;
1543 bfa->iocfc.op_status = BFA_STATUS_OK;
1544 bfa->iocfc.submod_enabled = BFA_FALSE;
1546 bfa_fsm_set_state(&bfa->iocfc, bfa_iocfc_sm_stopped);
1553 bfa_iocfc_init(struct bfa_s *bfa)
1555 bfa_fsm_send_event(&bfa->iocfc, IOCFC_E_INIT);
1563 bfa_iocfc_start(struct bfa_s *bfa)
1565 bfa_fsm_send_event(&bfa->iocfc, IOCFC_E_START);
1573 bfa_iocfc_stop(struct bfa_s *bfa)
1575 bfa_fsm_send_event(&bfa->iocfc, IOCFC_E_STOP);
1581 struct bfa_s *bfa = bfaarg;
1582 struct bfa_iocfc_s *iocfc = &bfa->iocfc;
1586 bfa_trc(bfa, msg->mh.msg_id);
1590 bfa_iocfc_cfgrsp(bfa);
1596 bfa_iocfc_process_faa_addr(bfa,
1608 bfa_iocfc_get_attr(struct bfa_s *bfa, struct bfa_iocfc_attr_s *attr)
1610 struct bfa_iocfc_s *iocfc = &bfa->iocfc;
1626 bfa_iocfc_israttr_set(struct bfa_s *bfa, struct bfa_iocfc_intr_attr_s *attr)
1628 struct bfa_iocfc_s *iocfc = &bfa->iocfc;
1635 if (!bfa_iocfc_is_operational(bfa))
1638 m = bfa_reqq_next(bfa, BFA_REQQ_IOC);
1643 bfa_fn_lpu(bfa));
1648 bfa_trc(bfa, attr->delay);
1649 bfa_trc(bfa, attr->latency);
1651 bfa_reqq_produce(bfa, BFA_REQQ_IOC, m->mh);
1656 bfa_iocfc_set_snsbase(struct bfa_s *bfa, int seg_no, u64 snsbase_pa)
1658 struct bfa_iocfc_s *iocfc = &bfa->iocfc;
1667 bfa_iocfc_enable(struct bfa_s *bfa)
1669 bfa_plog_str(bfa->plog, BFA_PL_MID_HAL, BFA_PL_EID_MISC, 0,
1671 bfa->iocfc.cb_reqd = BFA_TRUE;
1672 bfa_fsm_send_event(&bfa->iocfc, IOCFC_E_ENABLE);
1676 bfa_iocfc_disable(struct bfa_s *bfa)
1678 bfa_plog_str(bfa->plog, BFA_PL_MID_HAL, BFA_PL_EID_MISC, 0,
1681 bfa_fsm_send_event(&bfa->iocfc, IOCFC_E_DISABLE);
1685 bfa_iocfc_is_operational(struct bfa_s *bfa)
1687 return bfa_ioc_is_operational(&bfa->ioc) &&
1688 bfa_fsm_cmp_state(&bfa->iocfc, bfa_iocfc_sm_operational);
1695 bfa_iocfc_get_bootwwns(struct bfa_s *bfa, u8 *nwwns, wwn_t *wwns)
1697 struct bfa_iocfc_s *iocfc = &bfa->iocfc;
1702 bfa_trc(bfa, cfgrsp->pbc_cfg.nbluns);
1715 bfa_iocfc_get_pbc_vports(struct bfa_s *bfa, struct bfi_pbc_vport_s *pbc_vport)
1717 struct bfa_iocfc_s *iocfc = &bfa->iocfc;
1749 * @param[in] bfa - pointer to the bfa structure, used while fetching the
1750 * dma, kva memory information of the bfa sub-modules.
1758 struct bfa_s *bfa)
1760 struct bfa_mem_dma_s *port_dma = BFA_MEM_PORT_DMA(bfa);
1761 struct bfa_mem_dma_s *ablk_dma = BFA_MEM_ABLK_DMA(bfa);
1762 struct bfa_mem_dma_s *cee_dma = BFA_MEM_CEE_DMA(bfa);
1763 struct bfa_mem_dma_s *sfp_dma = BFA_MEM_SFP_DMA(bfa);
1764 struct bfa_mem_dma_s *flash_dma = BFA_MEM_FLASH_DMA(bfa);
1765 struct bfa_mem_dma_s *diag_dma = BFA_MEM_DIAG_DMA(bfa);
1766 struct bfa_mem_dma_s *phy_dma = BFA_MEM_PHY_DMA(bfa);
1767 struct bfa_mem_dma_s *fru_dma = BFA_MEM_FRU_DMA(bfa);
1777 bfa_iocfc_meminfo(cfg, meminfo, bfa);
1778 bfa_sgpg_meminfo(cfg, meminfo, bfa);
1779 bfa_fcport_meminfo(cfg, meminfo, bfa);
1780 bfa_fcxp_meminfo(cfg, meminfo, bfa);
1781 bfa_lps_meminfo(cfg, meminfo, bfa);
1782 bfa_uf_meminfo(cfg, meminfo, bfa);
1783 bfa_rport_meminfo(cfg, meminfo, bfa);
1784 bfa_fcp_meminfo(cfg, meminfo, bfa);
1785 bfa_dconf_meminfo(cfg, meminfo, bfa);
1809 * @param[out] bfa Pointer to bfa_t.
1828 bfa_attach(struct bfa_s *bfa, void *bfad, struct bfa_iocfc_cfg_s *cfg,
1835 bfa->fcs = BFA_FALSE;
1858 bfa_iocfc_attach(bfa, bfad, cfg, pcidev);
1859 bfa_fcdiag_attach(bfa, bfad, cfg, pcidev);
1860 bfa_sgpg_attach(bfa, bfad, cfg, pcidev);
1861 bfa_fcport_attach(bfa, bfad, cfg, pcidev);
1862 bfa_fcxp_attach(bfa, bfad, cfg, pcidev);
1863 bfa_lps_attach(bfa, bfad, cfg, pcidev);
1864 bfa_uf_attach(bfa, bfad, cfg, pcidev);
1865 bfa_rport_attach(bfa, bfad, cfg, pcidev);
1866 bfa_fcp_attach(bfa, bfad, cfg, pcidev);
1867 bfa_dconf_attach(bfa, bfad, cfg);
1868 bfa_com_port_attach(bfa);
1869 bfa_com_ablk_attach(bfa);
1870 bfa_com_cee_attach(bfa);
1871 bfa_com_sfp_attach(bfa);
1872 bfa_com_flash_attach(bfa, cfg->drvcfg.min_cfg);
1873 bfa_com_diag_attach(bfa);
1874 bfa_com_phy_attach(bfa, cfg->drvcfg.min_cfg);
1875 bfa_com_fru_attach(bfa, cfg->drvcfg.min_cfg);
1882 * @param[in] bfa - pointer to bfa_t.
1892 bfa_detach(struct bfa_s *bfa)
1894 bfa_ioc_detach(&bfa->ioc);
1898 bfa_comp_deq(struct bfa_s *bfa, struct list_head *comp_q)
1901 list_splice_tail_init(&bfa->comp_q, comp_q);
1905 bfa_comp_process(struct bfa_s *bfa, struct list_head *comp_q)
1923 bfa_comp_free(struct bfa_s *bfa, struct list_head *comp_q)