dyn TS: fix: e1_config.c: switch(pchan) for dyn TS
Add ts_is_tch() in gsm_data_shared.h/.c and use it to replace a switch on the pchan in e1_config.c. This patch is not due to an actual observed failure. A general grep for switch on pchan turned up this instance that doesn't handle dyn TS properly. Hence this patch is not actually tested with real equipment. Change-Id: Ide4f156034bab77140d2d9a8c462d68ae6f0d6a6
This commit is contained in:
parent
23c3aa37ac
commit
255dbfe655
|
@ -855,5 +855,6 @@ struct gsm_lchan *rsl_lchan_lookup(struct gsm_bts_trx *trx, uint8_t chan_nr,
|
|||
int *rc);
|
||||
|
||||
uint8_t ts_subslots(struct gsm_bts_trx_ts *ts);
|
||||
bool ts_is_tch(struct gsm_bts_trx_ts *ts);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -63,15 +63,10 @@ int e1_reconfig_ts(struct gsm_bts_trx_ts *ts)
|
|||
return -ENOMEM;
|
||||
}
|
||||
|
||||
switch (ts->pchan) {
|
||||
case GSM_PCHAN_TCH_F:
|
||||
case GSM_PCHAN_TCH_H:
|
||||
if (ts_is_tch(ts)) {
|
||||
e1_ts = &line->ts[e1_link->e1_ts-1];
|
||||
e1inp_ts_config_trau(e1_ts, line, subch_cb);
|
||||
subch_demux_activate(&e1_ts->trau.demux, e1_link->e1_ts_ss);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -747,3 +747,19 @@ uint8_t ts_subslots(struct gsm_bts_trx_ts *ts)
|
|||
{
|
||||
return subslots_per_pchan[ts_pchan(ts)];
|
||||
}
|
||||
|
||||
static bool pchan_is_tch(enum gsm_phys_chan_config pchan)
|
||||
{
|
||||
switch (pchan) {
|
||||
case GSM_PCHAN_TCH_F:
|
||||
case GSM_PCHAN_TCH_H:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool ts_is_tch(struct gsm_bts_trx_ts *ts)
|
||||
{
|
||||
return pchan_is_tch(ts_pchan(ts));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue