prepare dyn TS: act lchan: fetch the channel mode a bit later
Dyn TS will add a new type of chan activation, which does not need a Channel Mode IE. Incidentally, the dyn PDCH also doesn't need this IE if it opts for sending a PDCH ACT instead. So it makes sense to compose the Channel Mode IE only after the dynamic decisions are done. Change-Id: I66d88ad6a4ae7bee1e552960fd4e92aff953125c
This commit is contained in:
parent
e2eb5cb6a1
commit
cf7933892a
|
@ -446,14 +446,6 @@ int rsl_chan_activate_lchan(struct gsm_lchan *lchan, uint8_t act_type,
|
||||||
struct rsl_ie_chan_mode cm;
|
struct rsl_ie_chan_mode cm;
|
||||||
struct gsm48_chan_desc cd;
|
struct gsm48_chan_desc cd;
|
||||||
|
|
||||||
rc = channel_mode_from_lchan(&cm, lchan);
|
|
||||||
if (rc < 0) {
|
|
||||||
LOGP(DRSL, LOGL_ERROR,
|
|
||||||
"%s Cannot find channel mode from lchan type\n",
|
|
||||||
gsm_ts_and_pchan_name(lchan->ts));
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* If a TCH_F/PDCH TS is in PDCH mode, deactivate PDCH first. */
|
/* If a TCH_F/PDCH TS is in PDCH mode, deactivate PDCH first. */
|
||||||
if (lchan->ts->pchan == GSM_PCHAN_TCH_F_PDCH
|
if (lchan->ts->pchan == GSM_PCHAN_TCH_F_PDCH
|
||||||
&& (lchan->ts->flags & TS_F_PDCH_ACTIVE)) {
|
&& (lchan->ts->flags & TS_F_PDCH_ACTIVE)) {
|
||||||
|
@ -463,6 +455,14 @@ int rsl_chan_activate_lchan(struct gsm_lchan *lchan, uint8_t act_type,
|
||||||
return rsl_ipacc_pdch_activate(lchan->ts, 0);
|
return rsl_ipacc_pdch_activate(lchan->ts, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rc = channel_mode_from_lchan(&cm, lchan);
|
||||||
|
if (rc < 0) {
|
||||||
|
LOGP(DRSL, LOGL_ERROR,
|
||||||
|
"%s Cannot find channel mode from lchan type\n",
|
||||||
|
gsm_ts_and_pchan_name(lchan->ts));
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
rsl_lchan_set_state(lchan, LCHAN_S_ACT_REQ);
|
rsl_lchan_set_state(lchan, LCHAN_S_ACT_REQ);
|
||||||
|
|
||||||
ta = lchan->rqd_ta;
|
ta = lchan->rqd_ta;
|
||||||
|
|
Loading…
Reference in New Issue