Lines Matching refs:dconf
5812 BFA_DCONF_SM_INIT = 1, /* dconf Init */
5816 BFA_DCONF_SM_EXIT = 5, /* exit dconf module */
5821 static void bfa_dconf_sm_uninit(struct bfa_dconf_mod_s *dconf,
5823 static void bfa_dconf_sm_flash_read(struct bfa_dconf_mod_s *dconf,
5825 static void bfa_dconf_sm_ready(struct bfa_dconf_mod_s *dconf,
5827 static void bfa_dconf_sm_dirty(struct bfa_dconf_mod_s *dconf,
5829 static void bfa_dconf_sm_sync(struct bfa_dconf_mod_s *dconf,
5831 static void bfa_dconf_sm_final_sync(struct bfa_dconf_mod_s *dconf,
5833 static void bfa_dconf_sm_iocdown_dirty(struct bfa_dconf_mod_s *dconf,
5836 static void bfa_dconf_cbfn(void *dconf, bfa_status_t status);
5838 static bfa_status_t bfa_dconf_flash_write(struct bfa_dconf_mod_s *dconf);
5842 * Beginning state of dconf module. Waiting for an event to start.
5845 bfa_dconf_sm_uninit(struct bfa_dconf_mod_s *dconf, enum bfa_dconf_event event)
5848 bfa_trc(dconf->bfa, event);
5852 if (dconf->min_cfg) {
5853 bfa_trc(dconf->bfa, dconf->min_cfg);
5854 bfa_fsm_send_event(&dconf->bfa->iocfc,
5858 bfa_sm_set_state(dconf, bfa_dconf_sm_flash_read);
5859 bfa_timer_start(dconf->bfa, &dconf->timer,
5860 bfa_dconf_timer, dconf, 2 * BFA_DCONF_UPDATE_TOV);
5861 bfa_status = bfa_flash_read_part(BFA_FLASH(dconf->bfa),
5862 BFA_FLASH_PART_DRV, dconf->instance,
5863 dconf->dconf,
5865 bfa_dconf_init_cb, dconf->bfa);
5867 bfa_timer_stop(&dconf->timer);
5868 bfa_dconf_init_cb(dconf->bfa, BFA_STATUS_FAILED);
5869 bfa_sm_set_state(dconf, bfa_dconf_sm_uninit);
5874 bfa_fsm_send_event(&dconf->bfa->iocfc, IOCFC_E_DCONF_DONE);
5881 bfa_sm_fault(dconf->bfa, event);
5886 * Read flash for dconf entries and make a call back to the driver once done.
5889 bfa_dconf_sm_flash_read(struct bfa_dconf_mod_s *dconf,
5892 bfa_trc(dconf->bfa, event);
5896 bfa_timer_stop(&dconf->timer);
5897 bfa_sm_set_state(dconf, bfa_dconf_sm_ready);
5900 bfa_sm_set_state(dconf, bfa_dconf_sm_ready);
5901 bfa_ioc_suspend(&dconf->bfa->ioc);
5904 bfa_timer_stop(&dconf->timer);
5905 bfa_sm_set_state(dconf, bfa_dconf_sm_uninit);
5906 bfa_fsm_send_event(&dconf->bfa->iocfc, IOCFC_E_DCONF_DONE);
5909 bfa_timer_stop(&dconf->timer);
5910 bfa_sm_set_state(dconf, bfa_dconf_sm_uninit);
5913 bfa_sm_fault(dconf->bfa, event);
5921 bfa_dconf_sm_ready(struct bfa_dconf_mod_s *dconf, enum bfa_dconf_event event)
5923 bfa_trc(dconf->bfa, event);
5927 bfa_timer_start(dconf->bfa, &dconf->timer,
5928 bfa_dconf_timer, dconf, BFA_DCONF_UPDATE_TOV);
5929 bfa_sm_set_state(dconf, bfa_dconf_sm_dirty);
5932 bfa_sm_set_state(dconf, bfa_dconf_sm_uninit);
5933 bfa_fsm_send_event(&dconf->bfa->iocfc, IOCFC_E_DCONF_DONE);
5939 bfa_sm_fault(dconf->bfa, event);
5948 bfa_dconf_sm_dirty(struct bfa_dconf_mod_s *dconf, enum bfa_dconf_event event)
5950 bfa_trc(dconf->bfa, event);
5954 bfa_sm_set_state(dconf, bfa_dconf_sm_sync);
5955 bfa_dconf_flash_write(dconf);
5958 bfa_timer_stop(&dconf->timer);
5959 bfa_timer_start(dconf->bfa, &dconf->timer,
5960 bfa_dconf_timer, dconf, BFA_DCONF_UPDATE_TOV);
5963 bfa_timer_stop(&dconf->timer);
5964 bfa_timer_start(dconf->bfa, &dconf->timer,
5965 bfa_dconf_timer, dconf, BFA_DCONF_UPDATE_TOV);
5966 bfa_sm_set_state(dconf, bfa_dconf_sm_final_sync);
5967 bfa_dconf_flash_write(dconf);
5972 bfa_timer_stop(&dconf->timer);
5973 bfa_sm_set_state(dconf, bfa_dconf_sm_iocdown_dirty);
5976 bfa_sm_fault(dconf->bfa, event);
5981 * Sync the dconf entries to the flash.
5984 bfa_dconf_sm_final_sync(struct bfa_dconf_mod_s *dconf,
5987 bfa_trc(dconf->bfa, event);
5992 bfa_timer_stop(&dconf->timer);
5995 bfa_sm_set_state(dconf, bfa_dconf_sm_uninit);
5996 bfa_fsm_send_event(&dconf->bfa->iocfc, IOCFC_E_DCONF_DONE);
5999 bfa_sm_fault(dconf->bfa, event);
6004 bfa_dconf_sm_sync(struct bfa_dconf_mod_s *dconf, enum bfa_dconf_event event)
6006 bfa_trc(dconf->bfa, event);
6010 bfa_sm_set_state(dconf, bfa_dconf_sm_ready);
6013 bfa_timer_start(dconf->bfa, &dconf->timer,
6014 bfa_dconf_timer, dconf, BFA_DCONF_UPDATE_TOV);
6015 bfa_sm_set_state(dconf, bfa_dconf_sm_dirty);
6018 bfa_timer_start(dconf->bfa, &dconf->timer,
6019 bfa_dconf_timer, dconf, BFA_DCONF_UPDATE_TOV);
6020 bfa_sm_set_state(dconf, bfa_dconf_sm_final_sync);
6023 bfa_sm_set_state(dconf, bfa_dconf_sm_iocdown_dirty);
6026 bfa_sm_fault(dconf->bfa, event);
6031 bfa_dconf_sm_iocdown_dirty(struct bfa_dconf_mod_s *dconf,
6034 bfa_trc(dconf->bfa, event);
6038 bfa_timer_start(dconf->bfa, &dconf->timer,
6039 bfa_dconf_timer, dconf, BFA_DCONF_UPDATE_TOV);
6040 bfa_sm_set_state(dconf, bfa_dconf_sm_dirty);
6043 bfa_sm_set_state(dconf, bfa_dconf_sm_uninit);
6044 bfa_fsm_send_event(&dconf->bfa->iocfc, IOCFC_E_DCONF_DONE);
6049 bfa_sm_fault(dconf->bfa, event);
6073 struct bfa_dconf_mod_s *dconf = BFA_DCONF_MOD(bfa);
6075 dconf->bfad = bfad;
6076 dconf->bfa = bfa;
6077 dconf->instance = bfa->ioc.port_id;
6078 bfa_trc(bfa, dconf->instance);
6080 dconf->dconf = (struct bfa_dconf_s *) bfa_mem_kva_curp(dconf);
6082 bfa_mem_kva_curp(dconf) += sizeof(struct bfa_dconf_hdr_s);
6083 dconf->min_cfg = BFA_TRUE;
6085 dconf->min_cfg = BFA_FALSE;
6086 bfa_mem_kva_curp(dconf) += sizeof(struct bfa_dconf_s);
6090 bfa_sm_set_state(dconf, bfa_dconf_sm_uninit);
6097 struct bfa_dconf_mod_s *dconf = BFA_DCONF_MOD(bfa);
6101 if (dconf->dconf->hdr.signature != BFI_DCONF_SIGNATURE)
6102 dconf->dconf->hdr.signature = BFI_DCONF_SIGNATURE;
6103 if (dconf->dconf->hdr.version != BFI_DCONF_VERSION)
6104 dconf->dconf->hdr.version = BFI_DCONF_VERSION;
6106 bfa_sm_send_event(dconf, BFA_DCONF_SM_FLASH_COMP);
6113 struct bfa_dconf_mod_s *dconf = BFA_DCONF_MOD(bfa);
6114 bfa_sm_send_event(dconf, BFA_DCONF_SM_INIT);
6119 struct bfa_dconf_mod_s *dconf = cbarg;
6120 bfa_sm_send_event(dconf, BFA_DCONF_SM_TIMEOUT);
6126 struct bfa_dconf_mod_s *dconf = BFA_DCONF_MOD(bfa);
6127 bfa_sm_send_event(dconf, BFA_DCONF_SM_IOCDISABLE);
6131 bfa_dconf_flash_write(struct bfa_dconf_mod_s *dconf)
6134 bfa_trc(dconf->bfa, 0);
6136 bfa_status = bfa_flash_update_part(BFA_FLASH(dconf->bfa),
6137 BFA_FLASH_PART_DRV, dconf->instance,
6138 dconf->dconf, sizeof(struct bfa_dconf_s), 0,
6139 bfa_dconf_cbfn, dconf);
6142 bfa_trc(dconf->bfa, bfa_status);
6150 struct bfa_dconf_mod_s *dconf = BFA_DCONF_MOD(bfa);
6151 bfa_trc(dconf->bfa, 0);
6152 if (bfa_sm_cmp_state(dconf, bfa_dconf_sm_iocdown_dirty))
6155 if (dconf->min_cfg) {
6156 bfa_trc(dconf->bfa, dconf->min_cfg);
6160 bfa_sm_send_event(dconf, BFA_DCONF_SM_WR);
6167 struct bfa_dconf_mod_s *dconf = arg;
6169 bfa_sm_send_event(dconf, BFA_DCONF_SM_FLASH_COMP);
6175 struct bfa_dconf_mod_s *dconf = BFA_DCONF_MOD(bfa);
6176 bfa_sm_send_event(dconf, BFA_DCONF_SM_EXIT);