aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2018-11-30 19:16:16 +0100
committerPau Espin Pedrol <pespin@sysmocom.de>2018-12-05 16:06:47 +0000
commit674bcd53d036a4c9e6cdea4e784e877cceb7cdac (patch)
tree8b7145f075d21a6f1ccac318da56e75c3f255bc1
parent3df635655517a98b488c7a4d7f02c25e4338f128 (diff)
bsc: ts_is_pchan_switching: Return correct IPA dyn TS target_pchan
-rw-r--r--src/osmo-bsc/timeslot_fsm.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/osmo-bsc/timeslot_fsm.c b/src/osmo-bsc/timeslot_fsm.c
index 269fcd526..d78428962 100644
--- a/src/osmo-bsc/timeslot_fsm.c
+++ b/src/osmo-bsc/timeslot_fsm.c
@@ -896,8 +896,21 @@ bool ts_is_pchan_switching(struct gsm_bts_trx_ts *ts, enum gsm_phys_chan_config
case TS_ST_WAIT_PDCH_DEACT:
/* If lchan started a PDCH deact but got somehow released while
* waiting for PDCH DEACT (N)ACK */
- if (target_pchan)
- *target_pchan = GSM_PCHAN_NONE;
+ if (target_pchan) {
+ switch (ts->pchan_on_init) {
+ case GSM_PCHAN_TCH_F_TCH_H_PDCH:
+ if (target_pchan)
+ *target_pchan = GSM_PCHAN_NONE;
+ break;
+ case GSM_PCHAN_TCH_F_PDCH:
+ if (target_pchan)
+ *target_pchan = GSM_PCHAN_TCH_F;
+ break;
+ default:
+ /* Can't be in this state and be a non dyn TS */
+ OSMO_ASSERT(false);
+ }
+ }
return true;
default: