dyn TS: rsl *2chan_nr(): handle TCH/F_TCH/H_PDCH
In gsm_lchan2chan_nr() use the current pchan type. In gsm_lchan_as_pchan2chan_nr(), add the special case of non-standard cbits for activating PDCH on a TCH/F_TCH/H_PDCH dyn TS. This way, gsm_pchan2chan_nr() conforms to the standard and does not need access to a ts struct. Change-Id: If248b9073b9f397110a2003d8e1a04afdc1c0e20
This commit is contained in:
parent
d384110d3d
commit
4673b86f3d
|
@ -604,12 +604,19 @@ uint8_t gsm_pchan2chan_nr(enum gsm_phys_chan_config pchan,
|
|||
|
||||
uint8_t gsm_lchan2chan_nr(const struct gsm_lchan *lchan)
|
||||
{
|
||||
enum gsm_phys_chan_config pchan = lchan->ts->pchan;
|
||||
if (pchan == GSM_PCHAN_TCH_F_TCH_H_PDCH)
|
||||
return gsm_lchan_as_pchan2chan_nr(lchan,
|
||||
lchan->ts->dyn.pchan_is);
|
||||
return gsm_pchan2chan_nr(lchan->ts->pchan, lchan->ts->nr, lchan->nr);
|
||||
}
|
||||
|
||||
uint8_t gsm_lchan_as_pchan2chan_nr(const struct gsm_lchan *lchan,
|
||||
enum gsm_phys_chan_config as_pchan)
|
||||
{
|
||||
if (lchan->ts->pchan == GSM_PCHAN_TCH_F_TCH_H_PDCH
|
||||
&& as_pchan == GSM_PCHAN_PDCH)
|
||||
return RSL_CHAN_OSMO_PDCH | (lchan->ts->nr & ~RSL_CHAN_NR_MASK);
|
||||
return gsm_pchan2chan_nr(as_pchan, lchan->ts->nr, lchan->nr);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue