diff options
-rw-r--r-- | src/osmo-bsc/timeslot_fsm.c | 17 |
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: |