OM2000: Change the order of MO initialization
So far: CF-IS-CON-TF Now: CF-TF-CON-IS Change-Id: I8efd9bafdcf9504d2e5fc85c44c708fa53f4dff8
This commit is contained in:
parent
3d6cb338c6
commit
c103c64e7d
|
@ -2157,18 +2157,19 @@ static void om2k_bts_s_wait_cf(struct osmo_fsm_inst *fi, uint32_t event, void *d
|
||||||
struct gsm_bts *bts = obfp->bts;
|
struct gsm_bts *bts = obfp->bts;
|
||||||
|
|
||||||
OSMO_ASSERT(event == OM2K_BTS_EVT_CF_DONE);
|
OSMO_ASSERT(event == OM2K_BTS_EVT_CF_DONE);
|
||||||
osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_IS,
|
/* TF can take a long time to initialize, wait for 10min */
|
||||||
BTS_FSM_TIMEOUT, 0);
|
osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_TF, 600, 0);
|
||||||
om2k_mo_fsm_start(fi, OM2K_BTS_EVT_IS_DONE, bts->c0,
|
om2k_mo_fsm_start(fi, OM2K_BTS_EVT_TF_DONE, bts->c0,
|
||||||
&bts->rbs2000.is.om2k_mo);
|
&bts->rbs2000.tf.om2k_mo);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void om2k_bts_s_wait_is(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
static void om2k_bts_s_wait_tf(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
||||||
{
|
{
|
||||||
struct om2k_bts_fsm_priv *obfp = fi->priv;
|
struct om2k_bts_fsm_priv *obfp = fi->priv;
|
||||||
struct gsm_bts *bts = obfp->bts;
|
struct gsm_bts *bts = obfp->bts;
|
||||||
|
|
||||||
OSMO_ASSERT(event == OM2K_BTS_EVT_IS_DONE);
|
OSMO_ASSERT(event == OM2K_BTS_EVT_TF_DONE);
|
||||||
|
|
||||||
osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_CON,
|
osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_CON,
|
||||||
BTS_FSM_TIMEOUT, 0);
|
BTS_FSM_TIMEOUT, 0);
|
||||||
om2k_mo_fsm_start(fi, OM2K_BTS_EVT_CON_DONE, bts->c0,
|
om2k_mo_fsm_start(fi, OM2K_BTS_EVT_CON_DONE, bts->c0,
|
||||||
|
@ -2181,18 +2182,19 @@ static void om2k_bts_s_wait_con(struct osmo_fsm_inst *fi, uint32_t event, void *
|
||||||
struct gsm_bts *bts = obfp->bts;
|
struct gsm_bts *bts = obfp->bts;
|
||||||
|
|
||||||
OSMO_ASSERT(event == OM2K_BTS_EVT_CON_DONE);
|
OSMO_ASSERT(event == OM2K_BTS_EVT_CON_DONE);
|
||||||
/* TF can take a long time to initialize, wait for 10min */
|
|
||||||
osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_TF, 600, 0);
|
osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_IS,
|
||||||
om2k_mo_fsm_start(fi, OM2K_BTS_EVT_TF_DONE, bts->c0,
|
BTS_FSM_TIMEOUT, 0);
|
||||||
&bts->rbs2000.tf.om2k_mo);
|
om2k_mo_fsm_start(fi, OM2K_BTS_EVT_IS_DONE, bts->c0,
|
||||||
|
&bts->rbs2000.is.om2k_mo);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void om2k_bts_s_wait_tf(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
static void om2k_bts_s_wait_is(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
||||||
{
|
{
|
||||||
struct om2k_bts_fsm_priv *obfp = fi->priv;
|
struct om2k_bts_fsm_priv *obfp = fi->priv;
|
||||||
struct gsm_bts_trx *trx;
|
struct gsm_bts_trx *trx;
|
||||||
|
|
||||||
OSMO_ASSERT(event == OM2K_BTS_EVT_TF_DONE);
|
OSMO_ASSERT(event == OM2K_BTS_EVT_IS_DONE);
|
||||||
|
|
||||||
osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_TRX,
|
osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_TRX,
|
||||||
BTS_FSM_TIMEOUT, 0);
|
BTS_FSM_TIMEOUT, 0);
|
||||||
|
@ -2231,31 +2233,31 @@ static const struct osmo_fsm_state om2k_bts_states[] = {
|
||||||
[OM2K_BTS_S_WAIT_CF] = {
|
[OM2K_BTS_S_WAIT_CF] = {
|
||||||
.in_event_mask = S(OM2K_BTS_EVT_CF_DONE),
|
.in_event_mask = S(OM2K_BTS_EVT_CF_DONE),
|
||||||
.out_state_mask = S(OM2K_BTS_S_ERROR) |
|
.out_state_mask = S(OM2K_BTS_S_ERROR) |
|
||||||
S(OM2K_BTS_S_WAIT_IS),
|
S(OM2K_BTS_S_WAIT_TF),
|
||||||
.name = "WAIT-CF",
|
.name = "WAIT-CF",
|
||||||
.action = om2k_bts_s_wait_cf,
|
.action = om2k_bts_s_wait_cf,
|
||||||
},
|
},
|
||||||
[OM2K_BTS_S_WAIT_IS] = {
|
|
||||||
.in_event_mask = S(OM2K_BTS_EVT_IS_DONE),
|
|
||||||
.out_state_mask = S(OM2K_BTS_S_ERROR) |
|
|
||||||
S(OM2K_BTS_S_WAIT_CON),
|
|
||||||
.name = "WAIT-IS",
|
|
||||||
.action = om2k_bts_s_wait_is,
|
|
||||||
},
|
|
||||||
[OM2K_BTS_S_WAIT_CON] = {
|
|
||||||
.in_event_mask = S(OM2K_BTS_EVT_CON_DONE),
|
|
||||||
.out_state_mask = S(OM2K_BTS_S_ERROR) |
|
|
||||||
S(OM2K_BTS_S_WAIT_TF),
|
|
||||||
.name = "WAIT-CON",
|
|
||||||
.action = om2k_bts_s_wait_con,
|
|
||||||
},
|
|
||||||
[OM2K_BTS_S_WAIT_TF] = {
|
[OM2K_BTS_S_WAIT_TF] = {
|
||||||
.in_event_mask = S(OM2K_BTS_EVT_TF_DONE),
|
.in_event_mask = S(OM2K_BTS_EVT_TF_DONE),
|
||||||
.out_state_mask = S(OM2K_BTS_S_ERROR) |
|
.out_state_mask = S(OM2K_BTS_S_ERROR) |
|
||||||
S(OM2K_BTS_S_WAIT_TRX),
|
S(OM2K_BTS_S_WAIT_CON),
|
||||||
.name = "WAIT-TF",
|
.name = "WAIT-TF",
|
||||||
.action = om2k_bts_s_wait_tf,
|
.action = om2k_bts_s_wait_tf,
|
||||||
},
|
},
|
||||||
|
[OM2K_BTS_S_WAIT_CON] = {
|
||||||
|
.in_event_mask = S(OM2K_BTS_EVT_CON_DONE),
|
||||||
|
.out_state_mask = S(OM2K_BTS_S_ERROR) |
|
||||||
|
S(OM2K_BTS_S_WAIT_IS),
|
||||||
|
.name = "WAIT-CON",
|
||||||
|
.action = om2k_bts_s_wait_con,
|
||||||
|
},
|
||||||
|
[OM2K_BTS_S_WAIT_IS] = {
|
||||||
|
.in_event_mask = S(OM2K_BTS_EVT_IS_DONE),
|
||||||
|
.out_state_mask = S(OM2K_BTS_S_ERROR) |
|
||||||
|
S(OM2K_BTS_S_WAIT_TRX),
|
||||||
|
.name = "WAIT-IS",
|
||||||
|
.action = om2k_bts_s_wait_is,
|
||||||
|
},
|
||||||
[OM2K_BTS_S_WAIT_TRX] = {
|
[OM2K_BTS_S_WAIT_TRX] = {
|
||||||
.in_event_mask = S(OM2K_BTS_EVT_TRX_DONE),
|
.in_event_mask = S(OM2K_BTS_EVT_TRX_DONE),
|
||||||
.out_state_mask = S(OM2K_BTS_S_ERROR) |
|
.out_state_mask = S(OM2K_BTS_S_ERROR) |
|
||||||
|
|
Loading…
Reference in New Issue