abis_om2000: send TS_EV_OML_READY when TRX is fully done

We send the TS_EV_OML_READY event early, even though the TRX is not
fully done with all OML initialization steps. Lets complete the TRX
initialization first and then notify each timeslot FSM with
TS_EV_OML_READY.

Change-Id: If5251b102c8aa45dfc8cc4ee4e0223d7dc438938
This commit is contained in:
Philipp Maier 2022-10-06 15:33:28 +02:00
parent 4c680eb798
commit cb3140faf6
1 changed files with 5 additions and 4 deletions

View File

@ -2254,10 +2254,6 @@ static void om2k_trx_s_wait_ts(struct osmo_fsm_inst *fi, uint32_t event, void *d
struct om2k_trx_fsm_priv *otfp = fi->priv;
struct gsm_bts_trx_ts *ts;
/* notify TS is ready */
ts = &otfp->trx->ts[otfp->cur_ts_nr];
osmo_fsm_inst_dispatch(ts->fi, TS_EV_OML_READY, NULL);
/* next ? */
if (++otfp->cur_ts_nr < 8) {
/* iterate to the next timeslot */
@ -2285,6 +2281,7 @@ static void om2k_trx_s_done_onenter(struct osmo_fsm_inst *fi, uint32_t prev_stat
struct nm_statechg_signal_data nsd;
struct nm_statechg_signal_data nsd_bb_transc;
struct gsm_bts_trx *trx = otfp->trx;
unsigned int i;
memset(&nsd, 0, sizeof(nsd));
@ -2316,6 +2313,10 @@ static void om2k_trx_s_done_onenter(struct osmo_fsm_inst *fi, uint32_t prev_stat
if (fi->proc.parent)
osmo_fsm_inst_dispatch(fi->proc.parent, otfp->done_event, NULL);
/* Notify the timeslot FSM that all TRX initialization steps are done. */
for (i = 0; i < ARRAY_SIZE(trx->ts); i++)
osmo_fsm_inst_dispatch(trx->ts[i].fi, TS_EV_OML_READY, NULL);
}
static void om2k_trx_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data)