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