Lines Matching refs:iocpf
229 bfa_fsm_set_state(&ioc->iocpf, bfa_iocpf_sm_reset); in bfa_ioc_sm_reset_entry()
370 if (ioc->iocpf.auto_recover) in bfa_ioc_sm_op()
560 bfa_iocpf_sm_reset_entry(struct bfa_iocpf *iocpf) in bfa_iocpf_sm_reset_entry() argument
562 iocpf->fw_mismatch_notified = false; in bfa_iocpf_sm_reset_entry()
563 iocpf->auto_recover = bfa_nw_auto_recover; in bfa_iocpf_sm_reset_entry()
568 bfa_iocpf_sm_reset(struct bfa_iocpf *iocpf, enum iocpf_event event) in bfa_iocpf_sm_reset() argument
572 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_fwcheck); in bfa_iocpf_sm_reset()
585 bfa_iocpf_sm_fwcheck_entry(struct bfa_iocpf *iocpf) in bfa_iocpf_sm_fwcheck_entry() argument
587 bfa_ioc_hw_sem_init(iocpf->ioc); in bfa_iocpf_sm_fwcheck_entry()
588 bfa_ioc_hw_sem_get(iocpf->ioc); in bfa_iocpf_sm_fwcheck_entry()
593 bfa_iocpf_sm_fwcheck(struct bfa_iocpf *iocpf, enum iocpf_event event) in bfa_iocpf_sm_fwcheck() argument
595 struct bfa_ioc *ioc = iocpf->ioc; in bfa_iocpf_sm_fwcheck()
602 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_hwinit); in bfa_iocpf_sm_fwcheck()
611 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_mismatch); in bfa_iocpf_sm_fwcheck()
616 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_fail); in bfa_iocpf_sm_fwcheck()
622 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_reset); in bfa_iocpf_sm_fwcheck()
628 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_reset); in bfa_iocpf_sm_fwcheck()
638 bfa_iocpf_sm_mismatch_entry(struct bfa_iocpf *iocpf) in bfa_iocpf_sm_mismatch_entry() argument
641 if (!iocpf->fw_mismatch_notified) in bfa_iocpf_sm_mismatch_entry()
642 bfa_ioc_pf_fwmismatch(iocpf->ioc); in bfa_iocpf_sm_mismatch_entry()
644 iocpf->fw_mismatch_notified = true; in bfa_iocpf_sm_mismatch_entry()
645 mod_timer(&(iocpf->ioc)->iocpf_timer, jiffies + in bfa_iocpf_sm_mismatch_entry()
651 bfa_iocpf_sm_mismatch(struct bfa_iocpf *iocpf, enum iocpf_event event) in bfa_iocpf_sm_mismatch() argument
653 struct bfa_ioc *ioc = iocpf->ioc; in bfa_iocpf_sm_mismatch()
657 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_fwcheck); in bfa_iocpf_sm_mismatch()
662 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_reset); in bfa_iocpf_sm_mismatch()
668 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_reset); in bfa_iocpf_sm_mismatch()
678 bfa_iocpf_sm_semwait_entry(struct bfa_iocpf *iocpf) in bfa_iocpf_sm_semwait_entry() argument
680 bfa_ioc_hw_sem_get(iocpf->ioc); in bfa_iocpf_sm_semwait_entry()
685 bfa_iocpf_sm_semwait(struct bfa_iocpf *iocpf, enum iocpf_event event) in bfa_iocpf_sm_semwait() argument
687 struct bfa_ioc *ioc = iocpf->ioc; in bfa_iocpf_sm_semwait()
693 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_hwinit); in bfa_iocpf_sm_semwait()
702 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_fail); in bfa_iocpf_sm_semwait()
708 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_disabling_sync); in bfa_iocpf_sm_semwait()
717 bfa_iocpf_sm_hwinit_entry(struct bfa_iocpf *iocpf) in bfa_iocpf_sm_hwinit_entry() argument
719 iocpf->poll_time = 0; in bfa_iocpf_sm_hwinit_entry()
720 bfa_ioc_reset(iocpf->ioc, false); in bfa_iocpf_sm_hwinit_entry()
727 bfa_iocpf_sm_hwinit(struct bfa_iocpf *iocpf, enum iocpf_event event) in bfa_iocpf_sm_hwinit() argument
729 struct bfa_ioc *ioc = iocpf->ioc; in bfa_iocpf_sm_hwinit()
733 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_enabling); in bfa_iocpf_sm_hwinit()
739 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_initfail_sync); in bfa_iocpf_sm_hwinit()
746 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_disabled); in bfa_iocpf_sm_hwinit()
755 bfa_iocpf_sm_enabling_entry(struct bfa_iocpf *iocpf) in bfa_iocpf_sm_enabling_entry() argument
757 mod_timer(&(iocpf->ioc)->iocpf_timer, jiffies + in bfa_iocpf_sm_enabling_entry()
762 iocpf->ioc->cbfn->reset_cbfn(iocpf->ioc->bfa); in bfa_iocpf_sm_enabling_entry()
763 bfa_ioc_send_enable(iocpf->ioc); in bfa_iocpf_sm_enabling_entry()
770 bfa_iocpf_sm_enabling(struct bfa_iocpf *iocpf, enum iocpf_event event) in bfa_iocpf_sm_enabling() argument
772 struct bfa_ioc *ioc = iocpf->ioc; in bfa_iocpf_sm_enabling()
778 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_ready); in bfa_iocpf_sm_enabling()
789 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_initfail_sync); in bfa_iocpf_sm_enabling()
795 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_disabling); in bfa_iocpf_sm_enabling()
804 bfa_iocpf_sm_ready_entry(struct bfa_iocpf *iocpf) in bfa_iocpf_sm_ready_entry() argument
806 bfa_ioc_pf_enabled(iocpf->ioc); in bfa_iocpf_sm_ready_entry()
810 bfa_iocpf_sm_ready(struct bfa_iocpf *iocpf, enum iocpf_event event) in bfa_iocpf_sm_ready() argument
814 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_disabling); in bfa_iocpf_sm_ready()
818 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_initfail_sync); in bfa_iocpf_sm_ready()
822 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_fail_sync); in bfa_iocpf_sm_ready()
831 bfa_iocpf_sm_disabling_entry(struct bfa_iocpf *iocpf) in bfa_iocpf_sm_disabling_entry() argument
833 mod_timer(&(iocpf->ioc)->iocpf_timer, jiffies + in bfa_iocpf_sm_disabling_entry()
835 bfa_ioc_send_disable(iocpf->ioc); in bfa_iocpf_sm_disabling_entry()
840 bfa_iocpf_sm_disabling(struct bfa_iocpf *iocpf, enum iocpf_event event) in bfa_iocpf_sm_disabling() argument
842 struct bfa_ioc *ioc = iocpf->ioc; in bfa_iocpf_sm_disabling()
847 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_disabling_sync); in bfa_iocpf_sm_disabling()
856 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_disabling_sync); in bfa_iocpf_sm_disabling()
868 bfa_iocpf_sm_disabling_sync_entry(struct bfa_iocpf *iocpf) in bfa_iocpf_sm_disabling_sync_entry() argument
870 bfa_ioc_hw_sem_get(iocpf->ioc); in bfa_iocpf_sm_disabling_sync_entry()
875 bfa_iocpf_sm_disabling_sync(struct bfa_iocpf *iocpf, enum iocpf_event event) in bfa_iocpf_sm_disabling_sync() argument
877 struct bfa_ioc *ioc = iocpf->ioc; in bfa_iocpf_sm_disabling_sync()
883 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_disabled); in bfa_iocpf_sm_disabling_sync()
887 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_fail); in bfa_iocpf_sm_disabling_sync()
901 bfa_iocpf_sm_disabled_entry(struct bfa_iocpf *iocpf) in bfa_iocpf_sm_disabled_entry() argument
903 bfa_ioc_mbox_flush(iocpf->ioc); in bfa_iocpf_sm_disabled_entry()
904 bfa_ioc_pf_disabled(iocpf->ioc); in bfa_iocpf_sm_disabled_entry()
908 bfa_iocpf_sm_disabled(struct bfa_iocpf *iocpf, enum iocpf_event event) in bfa_iocpf_sm_disabled() argument
910 struct bfa_ioc *ioc = iocpf->ioc; in bfa_iocpf_sm_disabled()
914 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_semwait); in bfa_iocpf_sm_disabled()
919 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_reset); in bfa_iocpf_sm_disabled()
928 bfa_iocpf_sm_initfail_sync_entry(struct bfa_iocpf *iocpf) in bfa_iocpf_sm_initfail_sync_entry() argument
930 bfa_nw_ioc_debug_save_ftrc(iocpf->ioc); in bfa_iocpf_sm_initfail_sync_entry()
931 bfa_ioc_hw_sem_get(iocpf->ioc); in bfa_iocpf_sm_initfail_sync_entry()
936 bfa_iocpf_sm_initfail_sync(struct bfa_iocpf *iocpf, enum iocpf_event event) in bfa_iocpf_sm_initfail_sync() argument
938 struct bfa_ioc *ioc = iocpf->ioc; in bfa_iocpf_sm_initfail_sync()
946 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_initfail); in bfa_iocpf_sm_initfail_sync()
950 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_fail); in bfa_iocpf_sm_initfail_sync()
956 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_disabling_sync); in bfa_iocpf_sm_initfail_sync()
962 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_reset); in bfa_iocpf_sm_initfail_sync()
974 bfa_iocpf_sm_initfail_entry(struct bfa_iocpf *iocpf) in bfa_iocpf_sm_initfail_entry() argument
980 bfa_iocpf_sm_initfail(struct bfa_iocpf *iocpf, enum iocpf_event event) in bfa_iocpf_sm_initfail() argument
982 struct bfa_ioc *ioc = iocpf->ioc; in bfa_iocpf_sm_initfail()
986 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_disabled); in bfa_iocpf_sm_initfail()
991 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_reset); in bfa_iocpf_sm_initfail()
1000 bfa_iocpf_sm_fail_sync_entry(struct bfa_iocpf *iocpf) in bfa_iocpf_sm_fail_sync_entry() argument
1005 bfa_ioc_lpu_stop(iocpf->ioc); in bfa_iocpf_sm_fail_sync_entry()
1010 bfa_ioc_mbox_flush(iocpf->ioc); in bfa_iocpf_sm_fail_sync_entry()
1011 bfa_ioc_hw_sem_get(iocpf->ioc); in bfa_iocpf_sm_fail_sync_entry()
1016 bfa_iocpf_sm_fail_sync(struct bfa_iocpf *iocpf, enum iocpf_event event) in bfa_iocpf_sm_fail_sync() argument
1018 struct bfa_ioc *ioc = iocpf->ioc; in bfa_iocpf_sm_fail_sync()
1024 if (!iocpf->auto_recover) { in bfa_iocpf_sm_fail_sync()
1028 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_fail); in bfa_iocpf_sm_fail_sync()
1031 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_hwinit); in bfa_iocpf_sm_fail_sync()
1034 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_semwait); in bfa_iocpf_sm_fail_sync()
1040 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_fail); in bfa_iocpf_sm_fail_sync()
1046 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_disabling_sync); in bfa_iocpf_sm_fail_sync()
1058 bfa_iocpf_sm_fail_entry(struct bfa_iocpf *iocpf) in bfa_iocpf_sm_fail_entry() argument
1064 bfa_iocpf_sm_fail(struct bfa_iocpf *iocpf, enum iocpf_event event) in bfa_iocpf_sm_fail() argument
1068 bfa_fsm_set_state(iocpf, bfa_iocpf_sm_disabled); in bfa_iocpf_sm_fail()
1192 bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_SEM_ERROR); in bfa_ioc_hw_sem_get()
1196 bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_SEMLOCKED); in bfa_ioc_hw_sem_get()
1875 bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_FWREADY); in bfa_ioc_hwinit()
2094 struct bfa_iocpf *iocpf = &ioc->iocpf; in bfa_ioc_enable_reply() local
2098 bfa_fsm_send_event(iocpf, IOCPF_E_FWRSP_ENABLE); in bfa_ioc_enable_reply()
2394 bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_TIMEOUT); in bfa_ioc_boot()
2440 struct bfa_iocpf *iocpf = &ioc->iocpf; in bfa_ioc_isr() local
2457 bfa_fsm_send_event(iocpf, IOCPF_E_FWRSP_DISABLE); in bfa_ioc_isr()
2483 ioc->iocpf.ioc = ioc; in bfa_nw_ioc_attach()
2616 ioc->dbg_fwsave_len = ioc->iocpf.auto_recover ? BNA_DBG_FWTRC_LEN : 0; in bfa_nw_ioc_debug_memclaim()
2863 iocpf_st = bfa_sm_to_state(iocpf_sm_table, ioc->iocpf.fsm); in bfa_ioc_get_state()
2943 bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_ENABLE); in bfa_iocpf_enable()
2949 bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_DISABLE); in bfa_iocpf_disable()
2955 bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_FAIL); in bfa_iocpf_fail()
2961 bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_INITFAIL); in bfa_iocpf_initfail()
2967 bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_GETATTRFAIL); in bfa_iocpf_getattrfail()
2973 bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_STOP); in bfa_iocpf_stop()
2981 iocpf_st = bfa_sm_to_state(iocpf_sm_table, ioc->iocpf.fsm); in bfa_nw_iocpf_timeout()
2986 bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_TIMEOUT); in bfa_nw_iocpf_timeout()
3001 bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_FWREADY); in bfa_ioc_poll_fwinit()
3005 if (ioc->iocpf.poll_time >= BFA_IOC_TOV) { in bfa_ioc_poll_fwinit()
3006 bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_TIMEOUT); in bfa_ioc_poll_fwinit()
3008 ioc->iocpf.poll_time += BFA_IOC_POLL_TOV; in bfa_ioc_poll_fwinit()