[MERGED] openbsc[master]: OM2000: Change the order of MO initialization

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Wed Mar 15 13:36:32 UTC 2017


Harald Welte has submitted this change and it was merged.

Change subject: OM2000: Change the order of MO initialization
......................................................................


OM2000: Change the order of MO initialization

So far: CF-IS-CON-TF
Now: CF-TF-CON-IS

Change-Id: I8efd9bafdcf9504d2e5fc85c44c708fa53f4dff8
---
M openbsc/src/libbsc/abis_om2000.c
1 file changed, 30 insertions(+), 28 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/openbsc/src/libbsc/abis_om2000.c b/openbsc/src/libbsc/abis_om2000.c
index 62e8f6a..1fb7689 100644
--- a/openbsc/src/libbsc/abis_om2000.c
+++ b/openbsc/src/libbsc/abis_om2000.c
@@ -2157,18 +2157,19 @@
 	struct gsm_bts *bts = obfp->bts;
 
 	OSMO_ASSERT(event == OM2K_BTS_EVT_CF_DONE);
-	osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_IS,
-				BTS_FSM_TIMEOUT, 0);
-	om2k_mo_fsm_start(fi, OM2K_BTS_EVT_IS_DONE, bts->c0,
-			  &bts->rbs2000.is.om2k_mo);
+	/* TF can take a long time to initialize, wait for 10min */
+	osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_TF, 600, 0);
+	om2k_mo_fsm_start(fi, OM2K_BTS_EVT_TF_DONE, bts->c0,
+			  &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 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,
 				BTS_FSM_TIMEOUT, 0);
 	om2k_mo_fsm_start(fi, OM2K_BTS_EVT_CON_DONE, bts->c0,
@@ -2181,18 +2182,19 @@
 	struct gsm_bts *bts = obfp->bts;
 
 	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);
-	om2k_mo_fsm_start(fi, OM2K_BTS_EVT_TF_DONE, bts->c0,
-			  &bts->rbs2000.tf.om2k_mo);
+
+	osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_IS,
+				BTS_FSM_TIMEOUT, 0);
+	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 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,
 				BTS_FSM_TIMEOUT, 0);
@@ -2231,31 +2233,31 @@
 	[OM2K_BTS_S_WAIT_CF] = {
 		.in_event_mask = S(OM2K_BTS_EVT_CF_DONE),
 		.out_state_mask = S(OM2K_BTS_S_ERROR) |
-				  S(OM2K_BTS_S_WAIT_IS),
+				  S(OM2K_BTS_S_WAIT_TF),
 		.name = "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] = {
 		.in_event_mask = S(OM2K_BTS_EVT_TF_DONE),
 		.out_state_mask = S(OM2K_BTS_S_ERROR) |
-				  S(OM2K_BTS_S_WAIT_TRX),
+				  S(OM2K_BTS_S_WAIT_CON),
 		.name = "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] = {
 		.in_event_mask = S(OM2K_BTS_EVT_TRX_DONE),
 		.out_state_mask = S(OM2K_BTS_S_ERROR) |

-- 
To view, visit https://gerrit.osmocom.org/2035
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I8efd9bafdcf9504d2e5fc85c44c708fa53f4dff8
Gerrit-PatchSet: 2
Gerrit-Project: openbsc
Gerrit-Branch: master
Gerrit-Owner: lynxis lazus <lynxis at fe80.eu>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder



More information about the gerrit-log mailing list