diff options
Diffstat (limited to 'src/osmo-bsc/lchan_select.c')
-rw-r--r-- | src/osmo-bsc/lchan_select.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/src/osmo-bsc/lchan_select.c b/src/osmo-bsc/lchan_select.c index 0a9752e44..0f4dd6527 100644 --- a/src/osmo-bsc/lchan_select.c +++ b/src/osmo-bsc/lchan_select.c @@ -128,31 +128,22 @@ _lc_find_bts(struct gsm_bts *bts, enum gsm_phys_chan_config pchan) } struct gsm_lchan *lchan_select_by_chan_mode(struct gsm_bts *bts, - enum gsm48_chan_mode chan_mode, enum channel_rate chan_rate) + enum gsm48_chan_mode chan_mode, bool full_rate) { enum gsm_chan_t type; switch (chan_mode) { case GSM48_CMODE_SIGN: - switch (chan_rate) { - case CH_RATE_SDCCH: type = GSM_LCHAN_SDCCH; break; - case CH_RATE_HALF: type = GSM_LCHAN_TCH_H; break; - case CH_RATE_FULL: type = GSM_LCHAN_TCH_F; break; - default: return NULL; - } + type = GSM_LCHAN_SDCCH; break; case GSM48_CMODE_SPEECH_EFR: /* EFR works over FR channels only */ - if (chan_rate != CH_RATE_FULL) + if (!full_rate) return NULL; /* fall through */ case GSM48_CMODE_SPEECH_V1: case GSM48_CMODE_SPEECH_AMR: - switch (chan_rate) { - case CH_RATE_HALF: type = GSM_LCHAN_TCH_H; break; - case CH_RATE_FULL: type = GSM_LCHAN_TCH_F; break; - default: return NULL; - } + type = full_rate ? GSM_LCHAN_TCH_F : GSM_LCHAN_TCH_H; break; default: return NULL; |