Lines Matching refs:bfa
94 bfa_com_port_attach(struct bfa_s *bfa) in bfa_com_port_attach() argument
96 struct bfa_port_s *port = &bfa->modules.port; in bfa_com_port_attach()
97 struct bfa_mem_dma_s *port_dma = BFA_MEM_PORT_DMA(bfa); in bfa_com_port_attach()
99 bfa_port_attach(port, &bfa->ioc, bfa, bfa->trcmod); in bfa_com_port_attach()
107 bfa_com_ablk_attach(struct bfa_s *bfa) in bfa_com_ablk_attach() argument
109 struct bfa_ablk_s *ablk = &bfa->modules.ablk; in bfa_com_ablk_attach()
110 struct bfa_mem_dma_s *ablk_dma = BFA_MEM_ABLK_DMA(bfa); in bfa_com_ablk_attach()
112 bfa_ablk_attach(ablk, &bfa->ioc); in bfa_com_ablk_attach()
117 bfa_com_cee_attach(struct bfa_s *bfa) in bfa_com_cee_attach() argument
119 struct bfa_cee_s *cee = &bfa->modules.cee; in bfa_com_cee_attach()
120 struct bfa_mem_dma_s *cee_dma = BFA_MEM_CEE_DMA(bfa); in bfa_com_cee_attach()
122 cee->trcmod = bfa->trcmod; in bfa_com_cee_attach()
123 bfa_cee_attach(cee, &bfa->ioc, bfa); in bfa_com_cee_attach()
128 bfa_com_sfp_attach(struct bfa_s *bfa) in bfa_com_sfp_attach() argument
130 struct bfa_sfp_s *sfp = BFA_SFP_MOD(bfa); in bfa_com_sfp_attach()
131 struct bfa_mem_dma_s *sfp_dma = BFA_MEM_SFP_DMA(bfa); in bfa_com_sfp_attach()
133 bfa_sfp_attach(sfp, &bfa->ioc, bfa, bfa->trcmod); in bfa_com_sfp_attach()
138 bfa_com_flash_attach(struct bfa_s *bfa, bfa_boolean_t mincfg) in bfa_com_flash_attach() argument
140 struct bfa_flash_s *flash = BFA_FLASH(bfa); in bfa_com_flash_attach()
141 struct bfa_mem_dma_s *flash_dma = BFA_MEM_FLASH_DMA(bfa); in bfa_com_flash_attach()
143 bfa_flash_attach(flash, &bfa->ioc, bfa, bfa->trcmod, mincfg); in bfa_com_flash_attach()
149 bfa_com_diag_attach(struct bfa_s *bfa) in bfa_com_diag_attach() argument
151 struct bfa_diag_s *diag = BFA_DIAG_MOD(bfa); in bfa_com_diag_attach()
152 struct bfa_mem_dma_s *diag_dma = BFA_MEM_DIAG_DMA(bfa); in bfa_com_diag_attach()
154 bfa_diag_attach(diag, &bfa->ioc, bfa, bfa_fcport_beacon, bfa->trcmod); in bfa_com_diag_attach()
159 bfa_com_phy_attach(struct bfa_s *bfa, bfa_boolean_t mincfg) in bfa_com_phy_attach() argument
161 struct bfa_phy_s *phy = BFA_PHY(bfa); in bfa_com_phy_attach()
162 struct bfa_mem_dma_s *phy_dma = BFA_MEM_PHY_DMA(bfa); in bfa_com_phy_attach()
164 bfa_phy_attach(phy, &bfa->ioc, bfa, bfa->trcmod, mincfg); in bfa_com_phy_attach()
169 bfa_com_fru_attach(struct bfa_s *bfa, bfa_boolean_t mincfg) in bfa_com_fru_attach() argument
171 struct bfa_fru_s *fru = BFA_FRU(bfa); in bfa_com_fru_attach()
172 struct bfa_mem_dma_s *fru_dma = BFA_MEM_FRU_DMA(bfa); in bfa_com_fru_attach()
174 bfa_fru_attach(fru, &bfa->ioc, bfa, bfa->trcmod, mincfg); in bfa_com_fru_attach()
238 static void bfa_iocfc_start_submod(struct bfa_s *bfa);
239 static void bfa_iocfc_disable_submod(struct bfa_s *bfa);
259 bfa_trc(iocfc->bfa, event); in bfa_iocfc_sm_stopped()
267 bfa_sm_fault(iocfc->bfa, event); in bfa_iocfc_sm_stopped()
275 bfa_ioc_enable(&iocfc->bfa->ioc); in bfa_iocfc_sm_initing_entry()
281 bfa_trc(iocfc->bfa, event); in bfa_iocfc_sm_initing()
300 bfa_sm_fault(iocfc->bfa, event); in bfa_iocfc_sm_initing()
308 bfa_dconf_modinit(iocfc->bfa); in bfa_iocfc_sm_dconf_read_entry()
314 bfa_trc(iocfc->bfa, event); in bfa_iocfc_sm_dconf_read()
333 bfa_sm_fault(iocfc->bfa, event); in bfa_iocfc_sm_dconf_read()
341 bfa_iocfc_send_cfg(iocfc->bfa); in bfa_iocfc_sm_init_cfg_wait_entry()
347 bfa_trc(iocfc->bfa, event); in bfa_iocfc_sm_init_cfg_wait()
366 bfa_sm_fault(iocfc->bfa, event); in bfa_iocfc_sm_init_cfg_wait()
374 iocfc->bfa->iocfc.op_status = BFA_STATUS_OK; in bfa_iocfc_sm_init_cfg_done_entry()
375 bfa_cb_queue(iocfc->bfa, &iocfc->bfa->iocfc.init_hcb_qe, in bfa_iocfc_sm_init_cfg_done_entry()
376 bfa_iocfc_init_cb, iocfc->bfa); in bfa_iocfc_sm_init_cfg_done_entry()
382 bfa_trc(iocfc->bfa, event); in bfa_iocfc_sm_init_cfg_done()
398 bfa_sm_fault(iocfc->bfa, event); in bfa_iocfc_sm_init_cfg_done()
406 bfa_fcport_init(iocfc->bfa); in bfa_iocfc_sm_operational_entry()
407 bfa_iocfc_start_submod(iocfc->bfa); in bfa_iocfc_sm_operational_entry()
413 bfa_trc(iocfc->bfa, event); in bfa_iocfc_sm_operational()
426 bfa_sm_fault(iocfc->bfa, event); in bfa_iocfc_sm_operational()
434 bfa_dconf_modexit(iocfc->bfa); in bfa_iocfc_sm_dconf_write_entry()
440 bfa_trc(iocfc->bfa, event); in bfa_iocfc_sm_dconf_write()
448 bfa_sm_fault(iocfc->bfa, event); in bfa_iocfc_sm_dconf_write()
456 bfa_ioc_disable(&iocfc->bfa->ioc); in bfa_iocfc_sm_stopping_entry()
462 bfa_trc(iocfc->bfa, event); in bfa_iocfc_sm_stopping()
466 bfa_isr_disable(iocfc->bfa); in bfa_iocfc_sm_stopping()
467 bfa_iocfc_disable_submod(iocfc->bfa); in bfa_iocfc_sm_stopping()
469 iocfc->bfa->iocfc.op_status = BFA_STATUS_OK; in bfa_iocfc_sm_stopping()
470 bfa_cb_queue(iocfc->bfa, &iocfc->bfa->iocfc.stop_hcb_qe, in bfa_iocfc_sm_stopping()
471 bfa_iocfc_stop_cb, iocfc->bfa); in bfa_iocfc_sm_stopping()
480 bfa_sm_fault(iocfc->bfa, event); in bfa_iocfc_sm_stopping()
488 bfa_ioc_enable(&iocfc->bfa->ioc); in bfa_iocfc_sm_enabling_entry()
494 bfa_trc(iocfc->bfa, event); in bfa_iocfc_sm_enabling()
512 if (iocfc->bfa->iocfc.cb_reqd == BFA_FALSE) in bfa_iocfc_sm_enabling()
515 iocfc->bfa->iocfc.op_status = BFA_STATUS_FAILED; in bfa_iocfc_sm_enabling()
516 bfa_cb_queue(iocfc->bfa, &iocfc->bfa->iocfc.en_hcb_qe, in bfa_iocfc_sm_enabling()
517 bfa_iocfc_enable_cb, iocfc->bfa); in bfa_iocfc_sm_enabling()
518 iocfc->bfa->iocfc.cb_reqd = BFA_FALSE; in bfa_iocfc_sm_enabling()
521 bfa_sm_fault(iocfc->bfa, event); in bfa_iocfc_sm_enabling()
529 bfa_iocfc_send_cfg(iocfc->bfa); in bfa_iocfc_sm_cfg_wait_entry()
535 bfa_trc(iocfc->bfa, event); in bfa_iocfc_sm_cfg_wait()
540 if (iocfc->bfa->iocfc.cb_reqd == BFA_FALSE) in bfa_iocfc_sm_cfg_wait()
543 iocfc->bfa->iocfc.op_status = BFA_STATUS_OK; in bfa_iocfc_sm_cfg_wait()
544 bfa_cb_queue(iocfc->bfa, &iocfc->bfa->iocfc.en_hcb_qe, in bfa_iocfc_sm_cfg_wait()
545 bfa_iocfc_enable_cb, iocfc->bfa); in bfa_iocfc_sm_cfg_wait()
546 iocfc->bfa->iocfc.cb_reqd = BFA_FALSE; in bfa_iocfc_sm_cfg_wait()
557 if (iocfc->bfa->iocfc.cb_reqd == BFA_FALSE) in bfa_iocfc_sm_cfg_wait()
560 iocfc->bfa->iocfc.op_status = BFA_STATUS_FAILED; in bfa_iocfc_sm_cfg_wait()
561 bfa_cb_queue(iocfc->bfa, &iocfc->bfa->iocfc.en_hcb_qe, in bfa_iocfc_sm_cfg_wait()
562 bfa_iocfc_enable_cb, iocfc->bfa); in bfa_iocfc_sm_cfg_wait()
563 iocfc->bfa->iocfc.cb_reqd = BFA_FALSE; in bfa_iocfc_sm_cfg_wait()
566 bfa_sm_fault(iocfc->bfa, event); in bfa_iocfc_sm_cfg_wait()
574 bfa_ioc_disable(&iocfc->bfa->ioc); in bfa_iocfc_sm_disabling_entry()
580 bfa_trc(iocfc->bfa, event); in bfa_iocfc_sm_disabling()
591 bfa_sm_fault(iocfc->bfa, event); in bfa_iocfc_sm_disabling()
599 bfa_isr_disable(iocfc->bfa); in bfa_iocfc_sm_disabled_entry()
600 bfa_iocfc_disable_submod(iocfc->bfa); in bfa_iocfc_sm_disabled_entry()
601 iocfc->bfa->iocfc.op_status = BFA_STATUS_OK; in bfa_iocfc_sm_disabled_entry()
602 bfa_cb_queue(iocfc->bfa, &iocfc->bfa->iocfc.dis_hcb_qe, in bfa_iocfc_sm_disabled_entry()
603 bfa_iocfc_disable_cb, iocfc->bfa); in bfa_iocfc_sm_disabled_entry()
609 bfa_trc(iocfc->bfa, event); in bfa_iocfc_sm_disabled()
619 bfa_sm_fault(iocfc->bfa, event); in bfa_iocfc_sm_disabled()
627 bfa_isr_disable(iocfc->bfa); in bfa_iocfc_sm_failed_entry()
628 bfa_iocfc_disable_submod(iocfc->bfa); in bfa_iocfc_sm_failed_entry()
634 bfa_trc(iocfc->bfa, event); in bfa_iocfc_sm_failed()
649 bfa_sm_fault(iocfc->bfa, event); in bfa_iocfc_sm_failed()
657 bfa_isr_disable(iocfc->bfa); in bfa_iocfc_sm_init_failed_entry()
658 iocfc->bfa->iocfc.op_status = BFA_STATUS_FAILED; in bfa_iocfc_sm_init_failed_entry()
659 bfa_cb_queue(iocfc->bfa, &iocfc->bfa->iocfc.init_hcb_qe, in bfa_iocfc_sm_init_failed_entry()
660 bfa_iocfc_init_cb, iocfc->bfa); in bfa_iocfc_sm_init_failed_entry()
666 bfa_trc(iocfc->bfa, event); in bfa_iocfc_sm_init_failed()
673 bfa_ioc_disable(&iocfc->bfa->ioc); in bfa_iocfc_sm_init_failed()
680 iocfc->bfa->iocfc.op_status = BFA_STATUS_OK; in bfa_iocfc_sm_init_failed()
681 bfa_cb_queue(iocfc->bfa, &iocfc->bfa->iocfc.dis_hcb_qe, in bfa_iocfc_sm_init_failed()
682 bfa_iocfc_disable_cb, iocfc->bfa); in bfa_iocfc_sm_init_failed()
687 bfa_sm_fault(iocfc->bfa, event); in bfa_iocfc_sm_init_failed()
696 bfa_reqq_resume(struct bfa_s *bfa, int qid) in bfa_reqq_resume() argument
701 waitq = bfa_reqq(bfa, qid); in bfa_reqq_resume()
706 if (bfa_reqq_full(bfa, qid)) in bfa_reqq_resume()
716 bfa_isr_rspq(struct bfa_s *bfa, int qid) in bfa_isr_rspq() argument
723 ci = bfa_rspq_ci(bfa, qid); in bfa_isr_rspq()
724 pi = bfa_rspq_pi(bfa, qid); in bfa_isr_rspq()
729 m = bfa_rspq_elem(bfa, qid, ci); in bfa_isr_rspq()
732 bfa_isrs[m->mhdr.msg_class] (bfa, m); in bfa_isr_rspq()
733 CQ_INCR(ci, bfa->iocfc.cfg.drvcfg.num_rspq_elems); in bfa_isr_rspq()
739 bfa_isr_rspq_ack(bfa, qid, ci); in bfa_isr_rspq()
744 waitq = bfa_reqq(bfa, qid); in bfa_isr_rspq()
746 bfa_reqq_resume(bfa, qid); in bfa_isr_rspq()
752 bfa_isr_reqq(struct bfa_s *bfa, int qid) in bfa_isr_reqq() argument
756 bfa_isr_reqq_ack(bfa, qid); in bfa_isr_reqq()
761 waitq = bfa_reqq(bfa, qid); in bfa_isr_reqq()
763 bfa_reqq_resume(bfa, qid); in bfa_isr_reqq()
767 bfa_msix_all(struct bfa_s *bfa, int vec) in bfa_msix_all() argument
772 intr = readl(bfa->iocfc.bfa_regs.intr_status); in bfa_msix_all()
780 if (qintr && bfa->queue_process) { in bfa_msix_all()
782 bfa_isr_rspq(bfa, queue); in bfa_msix_all()
793 if (qintr && bfa->queue_process) { in bfa_msix_all()
795 bfa_isr_reqq(bfa, queue); in bfa_msix_all()
801 bfa_msix_lpu_err(bfa, intr); in bfa_msix_all()
805 bfa_intx(struct bfa_s *bfa) in bfa_intx() argument
811 intr = readl(bfa->iocfc.bfa_regs.intr_status); in bfa_intx()
815 writel(qintr, bfa->iocfc.bfa_regs.intr_status); in bfa_intx()
820 if (bfa->queue_process) { in bfa_intx()
822 if (bfa_isr_rspq(bfa, queue)) in bfa_intx()
833 if (qintr && bfa->queue_process) { in bfa_intx()
835 bfa_isr_reqq(bfa, queue); in bfa_intx()
841 if (bfa->intr_enabled) in bfa_intx()
842 bfa_msix_lpu_err(bfa, intr); in bfa_intx()
848 bfa_isr_enable(struct bfa_s *bfa) in bfa_isr_enable() argument
851 int port_id = bfa_ioc_portid(&bfa->ioc); in bfa_isr_enable()
853 bfa_trc(bfa, bfa_ioc_pcifn(&bfa->ioc)); in bfa_isr_enable()
854 bfa_trc(bfa, port_id); in bfa_isr_enable()
856 bfa_msix_ctrl_install(bfa); in bfa_isr_enable()
858 if (bfa_asic_id_ct2(bfa->ioc.pcidev.device_id)) { in bfa_isr_enable()
867 writel(umsk, bfa->iocfc.bfa_regs.intr_status); in bfa_isr_enable()
868 writel(~umsk, bfa->iocfc.bfa_regs.intr_mask); in bfa_isr_enable()
869 bfa->iocfc.intr_mask = ~umsk; in bfa_isr_enable()
870 bfa_isr_mode_set(bfa, bfa->msix.nvecs != 0); in bfa_isr_enable()
875 bfa->intr_enabled = BFA_TRUE; in bfa_isr_enable()
879 bfa_isr_disable(struct bfa_s *bfa) in bfa_isr_disable() argument
881 bfa->intr_enabled = BFA_FALSE; in bfa_isr_disable()
882 bfa_isr_mode_set(bfa, BFA_FALSE); in bfa_isr_disable()
883 writel(-1L, bfa->iocfc.bfa_regs.intr_mask); in bfa_isr_disable()
884 bfa_msix_uninstall(bfa); in bfa_isr_disable()
888 bfa_msix_reqq(struct bfa_s *bfa, int vec) in bfa_msix_reqq() argument
890 bfa_isr_reqq(bfa, vec - bfa->iocfc.hwif.cpe_vec_q0); in bfa_msix_reqq()
894 bfa_isr_unhandled(struct bfa_s *bfa, struct bfi_msg_s *m) in bfa_isr_unhandled() argument
896 bfa_trc(bfa, m->mhdr.msg_class); in bfa_isr_unhandled()
897 bfa_trc(bfa, m->mhdr.msg_id); in bfa_isr_unhandled()
898 bfa_trc(bfa, m->mhdr.mtag.i2htok); in bfa_isr_unhandled()
900 bfa_trc_stop(bfa->trcmod); in bfa_isr_unhandled()
904 bfa_msix_rspq(struct bfa_s *bfa, int vec) in bfa_msix_rspq() argument
906 bfa_isr_rspq(bfa, vec - bfa->iocfc.hwif.rme_vec_q0); in bfa_msix_rspq()
910 bfa_msix_lpu_err(struct bfa_s *bfa, int vec) in bfa_msix_lpu_err() argument
915 intr = readl(bfa->iocfc.bfa_regs.intr_status); in bfa_msix_lpu_err()
917 if (bfa_asic_id_ct2(bfa->ioc.pcidev.device_id)) { in bfa_msix_lpu_err()
924 halt_isr = bfa_asic_id_ct(bfa->ioc.pcidev.device_id) ? in bfa_msix_lpu_err()
932 bfa_ioc_mbox_isr(&bfa->ioc); in bfa_msix_lpu_err()
941 curr_value = readl(bfa->ioc.ioc_regs.ll_halt); in bfa_msix_lpu_err()
943 writel(curr_value, bfa->ioc.ioc_regs.ll_halt); in bfa_msix_lpu_err()
953 bfa->ioc.ioc_regs.pss_err_status_reg); in bfa_msix_lpu_err()
955 bfa->ioc.ioc_regs.pss_err_status_reg); in bfa_msix_lpu_err()
958 writel(intr, bfa->iocfc.bfa_regs.intr_status); in bfa_msix_lpu_err()
959 bfa_ioc_error_isr(&bfa->ioc); in bfa_msix_lpu_err()
977 struct bfa_s *bfa = bfa_arg; in bfa_iocfc_send_cfg() local
978 struct bfa_iocfc_s *iocfc = &bfa->iocfc; in bfa_iocfc_send_cfg()
985 bfa_trc(bfa, cfg->fwcfg.num_cqs); in bfa_iocfc_send_cfg()
987 bfa_iocfc_reset_queues(bfa); in bfa_iocfc_send_cfg()
993 if (bfa->msix.nvecs == 1) in bfa_iocfc_send_cfg()
997 cfg_info->num_ioim_reqs = cpu_to_be16(bfa_fcpim_get_throttle_cfg(bfa, in bfa_iocfc_send_cfg()
1032 bfa_fn_lpu(bfa)); in bfa_iocfc_send_cfg()
1035 bfa_ioc_mbox_send(&bfa->ioc, &cfg_req, in bfa_iocfc_send_cfg()
1040 bfa_iocfc_init_mem(struct bfa_s *bfa, void *bfad, struct bfa_iocfc_cfg_s *cfg, in bfa_iocfc_init_mem() argument
1043 struct bfa_iocfc_s *iocfc = &bfa->iocfc; in bfa_iocfc_init_mem()
1045 bfa->bfad = bfad; in bfa_iocfc_init_mem()
1046 iocfc->bfa = bfa; in bfa_iocfc_init_mem()
1052 if (bfa_asic_id_ctc(bfa_ioc_devid(&bfa->ioc))) { in bfa_iocfc_init_mem()
1077 bfa_ioc_pcifn(&bfa->ioc) * BFI_IOC_MAX_CQS; in bfa_iocfc_init_mem()
1079 bfa_ioc_pcifn(&bfa->ioc) * BFI_IOC_MAX_CQS; in bfa_iocfc_init_mem()
1082 if (bfa_asic_id_ct2(bfa_ioc_devid(&bfa->ioc))) { in bfa_iocfc_init_mem()
1088 iocfc->hwif.hw_reginit(bfa); in bfa_iocfc_init_mem()
1089 bfa->msix.nvecs = 0; in bfa_iocfc_init_mem()
1093 bfa_iocfc_mem_claim(struct bfa_s *bfa, struct bfa_iocfc_cfg_s *cfg) in bfa_iocfc_mem_claim() argument
1098 struct bfa_iocfc_s *iocfc = &bfa->iocfc; in bfa_iocfc_mem_claim()
1099 struct bfa_mem_dma_s *ioc_dma = BFA_MEM_IOC_DMA(bfa); in bfa_iocfc_mem_claim()
1100 struct bfa_mem_dma_s *iocfc_dma = BFA_MEM_IOCFC_DMA(bfa); in bfa_iocfc_mem_claim()
1104 bfa_ioc_mem_claim(&bfa->ioc, bfa_mem_dma_virt(ioc_dma), in bfa_iocfc_mem_claim()
1114 reqq_dma = BFA_MEM_REQQ_DMA(bfa, i); in bfa_iocfc_mem_claim()
1119 rspq_dma = BFA_MEM_RSPQ_DMA(bfa, i); in bfa_iocfc_mem_claim()
1142 bfa->iocfc.cfg_info.kva = dm_kva; in bfa_iocfc_mem_claim()
1143 bfa->iocfc.cfg_info.pa = dm_pa; in bfa_iocfc_mem_claim()
1144 bfa->iocfc.cfginfo = (struct bfi_iocfc_cfg_s *) dm_kva; in bfa_iocfc_mem_claim()
1149 bfa->iocfc.cfgrsp_dma.kva = dm_kva; in bfa_iocfc_mem_claim()
1150 bfa->iocfc.cfgrsp_dma.pa = dm_pa; in bfa_iocfc_mem_claim()
1151 bfa->iocfc.cfgrsp = (struct bfi_iocfc_cfgrsp_s *) dm_kva; in bfa_iocfc_mem_claim()
1158 bfa_ioc_debug_memclaim(&bfa->ioc, bfa_mem_kva_curp(iocfc)); in bfa_iocfc_mem_claim()
1166 bfa_iocfc_start_submod(struct bfa_s *bfa) in bfa_iocfc_start_submod() argument
1170 bfa->queue_process = BFA_TRUE; in bfa_iocfc_start_submod()
1172 bfa_isr_rspq_ack(bfa, i, bfa_rspq_ci(bfa, i)); in bfa_iocfc_start_submod()
1175 hal_mods[i]->start(bfa); in bfa_iocfc_start_submod()
1177 bfa->iocfc.submod_enabled = BFA_TRUE; in bfa_iocfc_start_submod()
1184 bfa_iocfc_disable_submod(struct bfa_s *bfa) in bfa_iocfc_disable_submod() argument
1188 if (bfa->iocfc.submod_enabled == BFA_FALSE) in bfa_iocfc_disable_submod()
1192 hal_mods[i]->iocdisable(bfa); in bfa_iocfc_disable_submod()
1194 bfa->iocfc.submod_enabled = BFA_FALSE; in bfa_iocfc_disable_submod()
1200 struct bfa_s *bfa = bfa_arg; in bfa_iocfc_init_cb() local
1203 bfa_cb_init(bfa->bfad, bfa->iocfc.op_status); in bfa_iocfc_init_cb()
1209 struct bfa_s *bfa = bfa_arg; in bfa_iocfc_stop_cb() local
1210 struct bfad_s *bfad = bfa->bfad; in bfa_iocfc_stop_cb()
1219 struct bfa_s *bfa = bfa_arg; in bfa_iocfc_enable_cb() local
1220 struct bfad_s *bfad = bfa->bfad; in bfa_iocfc_enable_cb()
1229 struct bfa_s *bfa = bfa_arg; in bfa_iocfc_disable_cb() local
1230 struct bfad_s *bfad = bfa->bfad; in bfa_iocfc_disable_cb()
1240 bfa_iocfc_qreg(struct bfa_s *bfa, struct bfi_iocfc_qreg_s *qreg) in bfa_iocfc_qreg() argument
1243 struct bfa_iocfc_regs_s *r = &bfa->iocfc.bfa_regs; in bfa_iocfc_qreg()
1244 void __iomem *kva = bfa_ioc_bar0(&bfa->ioc); in bfa_iocfc_qreg()
1247 bfa->iocfc.hw_qid[i] = qreg->hw_qid[i]; in bfa_iocfc_qreg()
1258 bfa_iocfc_res_recfg(struct bfa_s *bfa, struct bfa_iocfc_fwcfg_s *fwcfg) in bfa_iocfc_res_recfg() argument
1260 struct bfa_iocfc_s *iocfc = &bfa->iocfc; in bfa_iocfc_res_recfg()
1263 bfa_fcxp_res_recfg(bfa, fwcfg->num_fcxp_reqs); in bfa_iocfc_res_recfg()
1264 bfa_uf_res_recfg(bfa, fwcfg->num_uf_bufs); in bfa_iocfc_res_recfg()
1265 bfa_rport_res_recfg(bfa, fwcfg->num_rports); in bfa_iocfc_res_recfg()
1266 bfa_fcp_res_recfg(bfa, cpu_to_be16(cfg_info->num_ioim_reqs), in bfa_iocfc_res_recfg()
1268 bfa_tskim_res_recfg(bfa, fwcfg->num_tskim_reqs); in bfa_iocfc_res_recfg()
1275 bfa_iocfc_cfgrsp(struct bfa_s *bfa) in bfa_iocfc_cfgrsp() argument
1277 struct bfa_iocfc_s *iocfc = &bfa->iocfc; in bfa_iocfc_cfgrsp()
1292 bfa_iocfc_qreg(bfa, &cfgrsp->qreg); in bfa_iocfc_cfgrsp()
1297 bfa_iocfc_res_recfg(bfa, fwcfg); in bfa_iocfc_cfgrsp()
1302 bfa_msix_queue_install(bfa); in bfa_iocfc_cfgrsp()
1304 if (bfa->iocfc.cfgrsp->pbc_cfg.pbc_pwwn != 0) { in bfa_iocfc_cfgrsp()
1305 bfa->ioc.attr->pwwn = bfa->iocfc.cfgrsp->pbc_cfg.pbc_pwwn; in bfa_iocfc_cfgrsp()
1306 bfa->ioc.attr->nwwn = bfa->iocfc.cfgrsp->pbc_cfg.pbc_nwwn; in bfa_iocfc_cfgrsp()
1312 bfa_iocfc_reset_queues(struct bfa_s *bfa) in bfa_iocfc_reset_queues() argument
1317 bfa_reqq_ci(bfa, q) = 0; in bfa_iocfc_reset_queues()
1318 bfa_reqq_pi(bfa, q) = 0; in bfa_iocfc_reset_queues()
1319 bfa_rspq_ci(bfa, q) = 0; in bfa_iocfc_reset_queues()
1320 bfa_rspq_pi(bfa, q) = 0; in bfa_iocfc_reset_queues()
1328 bfa_iocfc_process_faa_addr(struct bfa_s *bfa, struct bfi_faa_addr_msg_s *msg) in bfa_iocfc_process_faa_addr() argument
1330 struct bfa_iocfc_s *iocfc = &bfa->iocfc; in bfa_iocfc_process_faa_addr()
1336 bfa->ioc.attr->pwwn = msg->pwwn; in bfa_iocfc_process_faa_addr()
1337 bfa->ioc.attr->nwwn = msg->nwwn; in bfa_iocfc_process_faa_addr()
1347 bfa_faa_validate_request(struct bfa_s *bfa) in bfa_faa_validate_request() argument
1349 enum bfa_ioc_type_e ioc_type = bfa_get_type(bfa); in bfa_faa_validate_request()
1350 u32 card_type = bfa->ioc.attr->card_type; in bfa_faa_validate_request()
1352 if (bfa_ioc_is_operational(&bfa->ioc)) { in bfa_faa_validate_request()
1363 bfa_faa_query(struct bfa_s *bfa, struct bfa_faa_attr_s *attr, in bfa_faa_query() argument
1367 struct bfa_iocfc_s *iocfc = &bfa->iocfc; in bfa_faa_query()
1370 status = bfa_faa_validate_request(bfa); in bfa_faa_query()
1384 BFI_IOCFC_H2I_FAA_QUERY_REQ, bfa_fn_lpu(bfa)); in bfa_faa_query()
1386 bfa_ioc_mbox_send(&bfa->ioc, &faa_attr_req, in bfa_faa_query()
1419 struct bfa_s *bfa = bfa_arg; in bfa_iocfc_enable_cbfn() local
1422 bfa_fsm_send_event(&bfa->iocfc, IOCFC_E_IOC_ENABLED); in bfa_iocfc_enable_cbfn()
1424 bfa_fsm_send_event(&bfa->iocfc, IOCFC_E_IOC_FAILED); in bfa_iocfc_enable_cbfn()
1433 struct bfa_s *bfa = bfa_arg; in bfa_iocfc_disable_cbfn() local
1435 bfa->queue_process = BFA_FALSE; in bfa_iocfc_disable_cbfn()
1436 bfa_fsm_send_event(&bfa->iocfc, IOCFC_E_IOC_DISABLED); in bfa_iocfc_disable_cbfn()
1445 struct bfa_s *bfa = bfa_arg; in bfa_iocfc_hbfail_cbfn() local
1447 bfa->queue_process = BFA_FALSE; in bfa_iocfc_hbfail_cbfn()
1448 bfa_fsm_send_event(&bfa->iocfc, IOCFC_E_IOC_FAILED); in bfa_iocfc_hbfail_cbfn()
1457 struct bfa_s *bfa = bfa_arg; in bfa_iocfc_reset_cbfn() local
1459 bfa_iocfc_reset_queues(bfa); in bfa_iocfc_reset_cbfn()
1460 bfa_isr_enable(bfa); in bfa_iocfc_reset_cbfn()
1468 struct bfa_s *bfa) in bfa_iocfc_meminfo() argument
1471 struct bfa_mem_dma_s *ioc_dma = BFA_MEM_IOC_DMA(bfa); in bfa_iocfc_meminfo()
1472 struct bfa_mem_dma_s *iocfc_dma = BFA_MEM_IOCFC_DMA(bfa); in bfa_iocfc_meminfo()
1473 struct bfa_mem_kva_s *iocfc_kva = BFA_MEM_IOCFC_KVA(bfa); in bfa_iocfc_meminfo()
1487 bfa_mem_dma_setup(meminfo, BFA_MEM_REQQ_DMA(bfa, q), in bfa_iocfc_meminfo()
1489 bfa_mem_dma_setup(meminfo, BFA_MEM_RSPQ_DMA(bfa, q), in bfa_iocfc_meminfo()
1513 bfa_iocfc_attach(struct bfa_s *bfa, void *bfad, struct bfa_iocfc_cfg_s *cfg, in bfa_iocfc_attach() argument
1517 struct bfa_ioc_s *ioc = &bfa->ioc; in bfa_iocfc_attach()
1524 ioc->trcmod = bfa->trcmod; in bfa_iocfc_attach()
1525 bfa_ioc_attach(&bfa->ioc, bfa, &bfa_iocfc_cbfn, &bfa->timer_mod); in bfa_iocfc_attach()
1527 bfa_ioc_pci_init(&bfa->ioc, pcidev, BFI_PCIFN_CLASS_FC); in bfa_iocfc_attach()
1528 bfa_ioc_mbox_register(&bfa->ioc, bfa_mbox_isrs); in bfa_iocfc_attach()
1530 bfa_iocfc_init_mem(bfa, bfad, cfg, pcidev); in bfa_iocfc_attach()
1531 bfa_iocfc_mem_claim(bfa, cfg); in bfa_iocfc_attach()
1532 INIT_LIST_HEAD(&bfa->timer_mod.timer_q); in bfa_iocfc_attach()
1534 INIT_LIST_HEAD(&bfa->comp_q); in bfa_iocfc_attach()
1536 INIT_LIST_HEAD(&bfa->reqq_waitq[i]); in bfa_iocfc_attach()
1538 bfa->iocfc.cb_reqd = BFA_FALSE; in bfa_iocfc_attach()
1539 bfa->iocfc.op_status = BFA_STATUS_OK; in bfa_iocfc_attach()
1540 bfa->iocfc.submod_enabled = BFA_FALSE; in bfa_iocfc_attach()
1542 bfa_fsm_set_state(&bfa->iocfc, bfa_iocfc_sm_stopped); in bfa_iocfc_attach()
1549 bfa_iocfc_init(struct bfa_s *bfa) in bfa_iocfc_init() argument
1551 bfa_fsm_send_event(&bfa->iocfc, IOCFC_E_INIT); in bfa_iocfc_init()
1559 bfa_iocfc_start(struct bfa_s *bfa) in bfa_iocfc_start() argument
1561 bfa_fsm_send_event(&bfa->iocfc, IOCFC_E_START); in bfa_iocfc_start()
1569 bfa_iocfc_stop(struct bfa_s *bfa) in bfa_iocfc_stop() argument
1571 bfa_fsm_send_event(&bfa->iocfc, IOCFC_E_STOP); in bfa_iocfc_stop()
1577 struct bfa_s *bfa = bfaarg; in bfa_iocfc_isr() local
1578 struct bfa_iocfc_s *iocfc = &bfa->iocfc; in bfa_iocfc_isr()
1582 bfa_trc(bfa, msg->mh.msg_id); in bfa_iocfc_isr()
1586 bfa_iocfc_cfgrsp(bfa); in bfa_iocfc_isr()
1592 bfa_iocfc_process_faa_addr(bfa, in bfa_iocfc_isr()
1604 bfa_iocfc_get_attr(struct bfa_s *bfa, struct bfa_iocfc_attr_s *attr) in bfa_iocfc_get_attr() argument
1606 struct bfa_iocfc_s *iocfc = &bfa->iocfc; in bfa_iocfc_get_attr()
1622 bfa_iocfc_israttr_set(struct bfa_s *bfa, struct bfa_iocfc_intr_attr_s *attr) in bfa_iocfc_israttr_set() argument
1624 struct bfa_iocfc_s *iocfc = &bfa->iocfc; in bfa_iocfc_israttr_set()
1631 if (!bfa_iocfc_is_operational(bfa)) in bfa_iocfc_israttr_set()
1634 m = bfa_reqq_next(bfa, BFA_REQQ_IOC); in bfa_iocfc_israttr_set()
1639 bfa_fn_lpu(bfa)); in bfa_iocfc_israttr_set()
1644 bfa_trc(bfa, attr->delay); in bfa_iocfc_israttr_set()
1645 bfa_trc(bfa, attr->latency); in bfa_iocfc_israttr_set()
1647 bfa_reqq_produce(bfa, BFA_REQQ_IOC, m->mh); in bfa_iocfc_israttr_set()
1652 bfa_iocfc_set_snsbase(struct bfa_s *bfa, int seg_no, u64 snsbase_pa) in bfa_iocfc_set_snsbase() argument
1654 struct bfa_iocfc_s *iocfc = &bfa->iocfc; in bfa_iocfc_set_snsbase()
1663 bfa_iocfc_enable(struct bfa_s *bfa) in bfa_iocfc_enable() argument
1665 bfa_plog_str(bfa->plog, BFA_PL_MID_HAL, BFA_PL_EID_MISC, 0, in bfa_iocfc_enable()
1667 bfa->iocfc.cb_reqd = BFA_TRUE; in bfa_iocfc_enable()
1668 bfa_fsm_send_event(&bfa->iocfc, IOCFC_E_ENABLE); in bfa_iocfc_enable()
1672 bfa_iocfc_disable(struct bfa_s *bfa) in bfa_iocfc_disable() argument
1674 bfa_plog_str(bfa->plog, BFA_PL_MID_HAL, BFA_PL_EID_MISC, 0, in bfa_iocfc_disable()
1677 bfa_fsm_send_event(&bfa->iocfc, IOCFC_E_DISABLE); in bfa_iocfc_disable()
1681 bfa_iocfc_is_operational(struct bfa_s *bfa) in bfa_iocfc_is_operational() argument
1683 return bfa_ioc_is_operational(&bfa->ioc) && in bfa_iocfc_is_operational()
1684 bfa_fsm_cmp_state(&bfa->iocfc, bfa_iocfc_sm_operational); in bfa_iocfc_is_operational()
1691 bfa_iocfc_get_bootwwns(struct bfa_s *bfa, u8 *nwwns, wwn_t *wwns) in bfa_iocfc_get_bootwwns() argument
1693 struct bfa_iocfc_s *iocfc = &bfa->iocfc; in bfa_iocfc_get_bootwwns()
1698 bfa_trc(bfa, cfgrsp->pbc_cfg.nbluns); in bfa_iocfc_get_bootwwns()
1711 bfa_iocfc_get_pbc_vports(struct bfa_s *bfa, struct bfi_pbc_vport_s *pbc_vport) in bfa_iocfc_get_pbc_vports() argument
1713 struct bfa_iocfc_s *iocfc = &bfa->iocfc; in bfa_iocfc_get_pbc_vports()
1754 struct bfa_s *bfa) in bfa_cfg_get_meminfo() argument
1757 struct bfa_mem_dma_s *port_dma = BFA_MEM_PORT_DMA(bfa); in bfa_cfg_get_meminfo()
1758 struct bfa_mem_dma_s *ablk_dma = BFA_MEM_ABLK_DMA(bfa); in bfa_cfg_get_meminfo()
1759 struct bfa_mem_dma_s *cee_dma = BFA_MEM_CEE_DMA(bfa); in bfa_cfg_get_meminfo()
1760 struct bfa_mem_dma_s *sfp_dma = BFA_MEM_SFP_DMA(bfa); in bfa_cfg_get_meminfo()
1761 struct bfa_mem_dma_s *flash_dma = BFA_MEM_FLASH_DMA(bfa); in bfa_cfg_get_meminfo()
1762 struct bfa_mem_dma_s *diag_dma = BFA_MEM_DIAG_DMA(bfa); in bfa_cfg_get_meminfo()
1763 struct bfa_mem_dma_s *phy_dma = BFA_MEM_PHY_DMA(bfa); in bfa_cfg_get_meminfo()
1764 struct bfa_mem_dma_s *fru_dma = BFA_MEM_FRU_DMA(bfa); in bfa_cfg_get_meminfo()
1774 bfa_iocfc_meminfo(cfg, meminfo, bfa); in bfa_cfg_get_meminfo()
1777 hal_mods[i]->meminfo(cfg, meminfo, bfa); in bfa_cfg_get_meminfo()
1820 bfa_attach(struct bfa_s *bfa, void *bfad, struct bfa_iocfc_cfg_s *cfg, in bfa_attach() argument
1828 bfa->fcs = BFA_FALSE; in bfa_attach()
1851 bfa_iocfc_attach(bfa, bfad, cfg, pcidev); in bfa_attach()
1854 hal_mods[i]->attach(bfa, bfad, cfg, pcidev); in bfa_attach()
1856 bfa_com_port_attach(bfa); in bfa_attach()
1857 bfa_com_ablk_attach(bfa); in bfa_attach()
1858 bfa_com_cee_attach(bfa); in bfa_attach()
1859 bfa_com_sfp_attach(bfa); in bfa_attach()
1860 bfa_com_flash_attach(bfa, cfg->drvcfg.min_cfg); in bfa_attach()
1861 bfa_com_diag_attach(bfa); in bfa_attach()
1862 bfa_com_phy_attach(bfa, cfg->drvcfg.min_cfg); in bfa_attach()
1863 bfa_com_fru_attach(bfa, cfg->drvcfg.min_cfg); in bfa_attach()
1880 bfa_detach(struct bfa_s *bfa) in bfa_detach() argument
1885 hal_mods[i]->detach(bfa); in bfa_detach()
1886 bfa_ioc_detach(&bfa->ioc); in bfa_detach()
1890 bfa_comp_deq(struct bfa_s *bfa, struct list_head *comp_q) in bfa_comp_deq() argument
1893 list_splice_tail_init(&bfa->comp_q, comp_q); in bfa_comp_deq()
1897 bfa_comp_process(struct bfa_s *bfa, struct list_head *comp_q) in bfa_comp_process() argument
1917 bfa_comp_free(struct bfa_s *bfa, struct list_head *comp_q) in bfa_comp_free() argument