Lines Matching refs:dconf

5811 	BFA_DCONF_SM_INIT		= 1,	/* dconf Init */
5815 BFA_DCONF_SM_EXIT = 5, /* exit dconf module */
5820 static void bfa_dconf_sm_uninit(struct bfa_dconf_mod_s *dconf,
5822 static void bfa_dconf_sm_flash_read(struct bfa_dconf_mod_s *dconf,
5824 static void bfa_dconf_sm_ready(struct bfa_dconf_mod_s *dconf,
5826 static void bfa_dconf_sm_dirty(struct bfa_dconf_mod_s *dconf,
5828 static void bfa_dconf_sm_sync(struct bfa_dconf_mod_s *dconf,
5830 static void bfa_dconf_sm_final_sync(struct bfa_dconf_mod_s *dconf,
5832 static void bfa_dconf_sm_iocdown_dirty(struct bfa_dconf_mod_s *dconf,
5835 static void bfa_dconf_cbfn(void *dconf, bfa_status_t status);
5837 static bfa_status_t bfa_dconf_flash_write(struct bfa_dconf_mod_s *dconf);
5841 * Beginning state of dconf module. Waiting for an event to start.
5844 bfa_dconf_sm_uninit(struct bfa_dconf_mod_s *dconf, enum bfa_dconf_event event)
5847 bfa_trc(dconf->bfa, event);
5851 if (dconf->min_cfg) {
5852 bfa_trc(dconf->bfa, dconf->min_cfg);
5853 bfa_fsm_send_event(&dconf->bfa->iocfc,
5857 bfa_sm_set_state(dconf, bfa_dconf_sm_flash_read);
5858 bfa_timer_start(dconf->bfa, &dconf->timer,
5859 bfa_dconf_timer, dconf, 2 * BFA_DCONF_UPDATE_TOV);
5860 bfa_status = bfa_flash_read_part(BFA_FLASH(dconf->bfa),
5861 BFA_FLASH_PART_DRV, dconf->instance,
5862 dconf->dconf,
5864 bfa_dconf_init_cb, dconf->bfa);
5866 bfa_timer_stop(&dconf->timer);
5867 bfa_dconf_init_cb(dconf->bfa, BFA_STATUS_FAILED);
5868 bfa_sm_set_state(dconf, bfa_dconf_sm_uninit);
5873 bfa_fsm_send_event(&dconf->bfa->iocfc, IOCFC_E_DCONF_DONE);
5879 bfa_sm_fault(dconf->bfa, event);
5884 * Read flash for dconf entries and make a call back to the driver once done.
5887 bfa_dconf_sm_flash_read(struct bfa_dconf_mod_s *dconf,
5890 bfa_trc(dconf->bfa, event);
5894 bfa_timer_stop(&dconf->timer);
5895 bfa_sm_set_state(dconf, bfa_dconf_sm_ready);
5898 bfa_sm_set_state(dconf, bfa_dconf_sm_ready);
5899 bfa_ioc_suspend(&dconf->bfa->ioc);
5902 bfa_timer_stop(&dconf->timer);
5903 bfa_sm_set_state(dconf, bfa_dconf_sm_uninit);
5904 bfa_fsm_send_event(&dconf->bfa->iocfc, IOCFC_E_DCONF_DONE);
5907 bfa_timer_stop(&dconf->timer);
5908 bfa_sm_set_state(dconf, bfa_dconf_sm_uninit);
5911 bfa_sm_fault(dconf->bfa, event);
5919 bfa_dconf_sm_ready(struct bfa_dconf_mod_s *dconf, enum bfa_dconf_event event)
5921 bfa_trc(dconf->bfa, event);
5925 bfa_timer_start(dconf->bfa, &dconf->timer,
5926 bfa_dconf_timer, dconf, BFA_DCONF_UPDATE_TOV);
5927 bfa_sm_set_state(dconf, bfa_dconf_sm_dirty);
5930 bfa_sm_set_state(dconf, bfa_dconf_sm_uninit);
5931 bfa_fsm_send_event(&dconf->bfa->iocfc, IOCFC_E_DCONF_DONE);
5937 bfa_sm_fault(dconf->bfa, event);
5946 bfa_dconf_sm_dirty(struct bfa_dconf_mod_s *dconf, enum bfa_dconf_event event)
5948 bfa_trc(dconf->bfa, event);
5952 bfa_sm_set_state(dconf, bfa_dconf_sm_sync);
5953 bfa_dconf_flash_write(dconf);
5956 bfa_timer_stop(&dconf->timer);
5957 bfa_timer_start(dconf->bfa, &dconf->timer,
5958 bfa_dconf_timer, dconf, BFA_DCONF_UPDATE_TOV);
5961 bfa_timer_stop(&dconf->timer);
5962 bfa_timer_start(dconf->bfa, &dconf->timer,
5963 bfa_dconf_timer, dconf, BFA_DCONF_UPDATE_TOV);
5964 bfa_sm_set_state(dconf, bfa_dconf_sm_final_sync);
5965 bfa_dconf_flash_write(dconf);
5970 bfa_timer_stop(&dconf->timer);
5971 bfa_sm_set_state(dconf, bfa_dconf_sm_iocdown_dirty);
5974 bfa_sm_fault(dconf->bfa, event);
5979 * Sync the dconf entries to the flash.
5982 bfa_dconf_sm_final_sync(struct bfa_dconf_mod_s *dconf,
5985 bfa_trc(dconf->bfa, event);
5990 bfa_timer_stop(&dconf->timer);
5993 bfa_sm_set_state(dconf, bfa_dconf_sm_uninit);
5994 bfa_fsm_send_event(&dconf->bfa->iocfc, IOCFC_E_DCONF_DONE);
5997 bfa_sm_fault(dconf->bfa, event);
6002 bfa_dconf_sm_sync(struct bfa_dconf_mod_s *dconf, enum bfa_dconf_event event)
6004 bfa_trc(dconf->bfa, event);
6008 bfa_sm_set_state(dconf, bfa_dconf_sm_ready);
6011 bfa_timer_start(dconf->bfa, &dconf->timer,
6012 bfa_dconf_timer, dconf, BFA_DCONF_UPDATE_TOV);
6013 bfa_sm_set_state(dconf, bfa_dconf_sm_dirty);
6016 bfa_timer_start(dconf->bfa, &dconf->timer,
6017 bfa_dconf_timer, dconf, BFA_DCONF_UPDATE_TOV);
6018 bfa_sm_set_state(dconf, bfa_dconf_sm_final_sync);
6021 bfa_sm_set_state(dconf, bfa_dconf_sm_iocdown_dirty);
6024 bfa_sm_fault(dconf->bfa, event);
6029 bfa_dconf_sm_iocdown_dirty(struct bfa_dconf_mod_s *dconf,
6032 bfa_trc(dconf->bfa, event);
6036 bfa_timer_start(dconf->bfa, &dconf->timer,
6037 bfa_dconf_timer, dconf, BFA_DCONF_UPDATE_TOV);
6038 bfa_sm_set_state(dconf, bfa_dconf_sm_dirty);
6041 bfa_sm_set_state(dconf, bfa_dconf_sm_uninit);
6042 bfa_fsm_send_event(&dconf->bfa->iocfc, IOCFC_E_DCONF_DONE);
6047 bfa_sm_fault(dconf->bfa, event);
6071 struct bfa_dconf_mod_s *dconf = BFA_DCONF_MOD(bfa);
6073 dconf->bfad = bfad;
6074 dconf->bfa = bfa;
6075 dconf->instance = bfa->ioc.port_id;
6076 bfa_trc(bfa, dconf->instance);
6078 dconf->dconf = (struct bfa_dconf_s *) bfa_mem_kva_curp(dconf);
6080 bfa_mem_kva_curp(dconf) += sizeof(struct bfa_dconf_hdr_s);
6081 dconf->min_cfg = BFA_TRUE;
6083 dconf->min_cfg = BFA_FALSE;
6084 bfa_mem_kva_curp(dconf) += sizeof(struct bfa_dconf_s);
6088 bfa_sm_set_state(dconf, bfa_dconf_sm_uninit);
6095 struct bfa_dconf_mod_s *dconf = BFA_DCONF_MOD(bfa);
6099 if (dconf->dconf->hdr.signature != BFI_DCONF_SIGNATURE)
6100 dconf->dconf->hdr.signature = BFI_DCONF_SIGNATURE;
6101 if (dconf->dconf->hdr.version != BFI_DCONF_VERSION)
6102 dconf->dconf->hdr.version = BFI_DCONF_VERSION;
6104 bfa_sm_send_event(dconf, BFA_DCONF_SM_FLASH_COMP);
6111 struct bfa_dconf_mod_s *dconf = BFA_DCONF_MOD(bfa);
6112 bfa_sm_send_event(dconf, BFA_DCONF_SM_INIT);
6117 struct bfa_dconf_mod_s *dconf = cbarg;
6118 bfa_sm_send_event(dconf, BFA_DCONF_SM_TIMEOUT);
6124 struct bfa_dconf_mod_s *dconf = BFA_DCONF_MOD(bfa);
6125 bfa_sm_send_event(dconf, BFA_DCONF_SM_IOCDISABLE);
6129 bfa_dconf_flash_write(struct bfa_dconf_mod_s *dconf)
6132 bfa_trc(dconf->bfa, 0);
6134 bfa_status = bfa_flash_update_part(BFA_FLASH(dconf->bfa),
6135 BFA_FLASH_PART_DRV, dconf->instance,
6136 dconf->dconf, sizeof(struct bfa_dconf_s), 0,
6137 bfa_dconf_cbfn, dconf);
6140 bfa_trc(dconf->bfa, bfa_status);
6148 struct bfa_dconf_mod_s *dconf = BFA_DCONF_MOD(bfa);
6149 bfa_trc(dconf->bfa, 0);
6150 if (bfa_sm_cmp_state(dconf, bfa_dconf_sm_iocdown_dirty))
6153 if (dconf->min_cfg) {
6154 bfa_trc(dconf->bfa, dconf->min_cfg);
6158 bfa_sm_send_event(dconf, BFA_DCONF_SM_WR);
6165 struct bfa_dconf_mod_s *dconf = arg;
6167 bfa_sm_send_event(dconf, BFA_DCONF_SM_FLASH_COMP);
6173 struct bfa_dconf_mod_s *dconf = BFA_DCONF_MOD(bfa);
6174 bfa_sm_send_event(dconf, BFA_DCONF_SM_EXIT);