diff options
author | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2013-11-05 13:42:59 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2013-11-05 15:51:19 +0100 |
commit | 5eef61414a4beb0ba3043bca88d42b6ba68d8c70 (patch) | |
tree | 4221cdd073f8d4fcfa311fb1b00b09ae950e3b2e | |
parent | 5b69ec3e720d21753101c9a0e1a38d0926ba3854 (diff) |
sysmobts: Only set RC state to LOCK if all channels are muted
Currently only mute_state[0] (refers to ts[0]) is inspected to
determine, whether the Radio Carrier's state is set to LOCK.
This patch changes this by looking at all channels and using LOCK
if (and only if) all channels have been muted successfully.
Sponsored-by: On-Waves ehf
-rw-r--r-- | src/osmo-bts-sysmo/oml.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c index c87acb66..4c63fd5b 100644 --- a/src/osmo-bts-sysmo/oml.c +++ b/src/osmo-bts-sysmo/oml.c @@ -342,9 +342,15 @@ int oml_mo_rf_lock_chg(struct gsm_abis_mo *mo, uint8_t mute_state[8], int success) { if (success) { - /* assume mute_state[i] == mute_state[k] */ + int i; + int is_locked = 1; + + for (i = 0; i < ARRAY_SIZE(mute_state); ++i) + if (!mute_state[i]) + is_locked = 0; + mo->nm_state.administrative = - mute_state[0] ? NM_STATE_LOCKED : NM_STATE_UNLOCKED; + is_locked ? NM_STATE_LOCKED : NM_STATE_UNLOCKED; mo->procedure_pending = 0; return oml_mo_statechg_ack(mo); } else { |