aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2013-03-07 10:07:18 +0000
committerHarald Welte <laforge@gnumonks.org>2013-03-07 10:07:18 +0000
commit19f212951af720bc5ad415d8347838f3ac222442 (patch)
treeae8f6a9dacde7e6d22ad3f79f797beb19aa126f3
parentcf4e3501a1620e8120b90acb3146772cdacaa8e6 (diff)
l1_if: if ul_power_target==0, hard-code MS power to what RSL says
RSL CHAN ACT contains a MS_POWER IE which is intended to be used as the initial power level for the MS, before the UL power control loop is starting. In our case, if ul_power_target != 0, then the DSP takes care of power control. If ul_power_target == 0, then we instruct the phone to constantly use the value specified by the BSC in the MS_POWER IE. FIXME: Actually implement a proper power control algoritihm inside osmo-bts so we don't have to rely on the DSP implementation.
-rw-r--r--src/osmo-bts-sysmo/l1_if.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c
index 71105061..9b05267f 100644
--- a/src/osmo-bts-sysmo/l1_if.c
+++ b/src/osmo-bts-sysmo/l1_if.c
@@ -472,6 +472,10 @@ static int handle_ph_readytosend_ind(struct femtol1_hdl *fl1,
/* resolve the L2 entity using rts_ind->hLayer2 */
lchan = l1if_hLayer_to_lchan(trx, rts_ind->hLayer2);
le = &lchan->lapdm_ch.lapdm_acch;
+ /* if the DSP is taking care of power control
+ * (ul_power_target==0), then this value will be
+ * overridden. */
+ msu_param->u8Buffer[0] = lchan->ms_power;
rc = lapdm_phsap_dequeue_prim(le, &pp);
if (rc < 0) {
/* No SACCH data from LAPDM pending, send SACCH filling */