bts-trx: Fix assert hit when rf_locked in .cfg and TS TCH/F_PDCH

If TRX is administratively locked during startup, for TS conigured as
TCH/F_PDCH the BSC will send a ACT PDCH message, but osmo-bts-trx won't
apply it by signalling it as available to the PCU, since the TRX is
locked.
That means the ts->flags contains the pending action to activate
it until it is unlocked. As a result, calling trx_set_ts() on it was
hitting the assert inside which expects not to apply the TS until it has
been confirmed by the PCU.
Let's still skip setting the TS and let pcu_tx_info_ind() trigger the
activation confirmation from PCU, since the TRX has just been unlocked.

Fixes following assert:
Assert failed (ts->flags & TS_F_PDCH_PENDING_MASK) == 0 /osmo-bts/src/osmo-bts-trx/l1_if.c:34

Change-Id: Ie3cad15d31870346d03a6e2f6dd32a9d2dd3067e
This commit is contained in:
Pau Espin 2020-07-27 16:38:27 +02:00
parent f30440553c
commit eef420d1ca
1 changed files with 7 additions and 0 deletions

View File

@ -702,6 +702,13 @@ int bts_model_chg_adm_state(struct gsm_bts *bts, struct gsm_abis_mo *mo,
* internally restore the old status here.
*/
ts->dyn.pchan_is = ts->dyn.pchan_want;
} else if (ts->pchan == GSM_PCHAN_TCH_F_PDCH && ts->flags & TS_F_PDCH_PENDING_MASK) {
/* TS configuration already in progress,
* waiting for PCU response, let it be
* de/activated later by PCU ACT CNF as a
* response to pcu_tx_info_ind()
*/
continue;
}
trx_set_ts(ts);
}