summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2018-09-06 02:40:24 +0700
committerVadim Yanitskiy <axilirator@gmail.com>2018-09-06 20:33:23 +0000
commit4736561b22c5d6c7ed9e673c6d76655710202f7e (patch)
tree9dd31cdd7fc3cf729b31353880a6cefb69a51f67 /src
parentfcfe20d3e007292e6c4c641e40d571e8ab416322 (diff)
trxcon/l1ctl.c: fix: handle ARFCN from L1CTL_DM_EST_REQ
A BSC may allocate a dedicated channel on any ARFCN, not necessary on the same one where a mobile station has requested this channel. For some reason, the ARFCN info of L1CTL_DM_EST_REQ message was not handled by trxcon. Let's fix this. Related: OS#3526 Change-Id: I16ed5c64236c159bfa39002b05094c1f6c171f6b
Diffstat (limited to 'src')
-rw-r--r--src/host/trxcon/l1ctl.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/host/trxcon/l1ctl.c b/src/host/trxcon/l1ctl.c
index 49d6a127..b0a4c6dd 100644
--- a/src/host/trxcon/l1ctl.c
+++ b/src/host/trxcon/l1ctl.c
@@ -554,6 +554,16 @@ static int l1ctl_rx_dm_est_req(struct l1ctl_link *l1l, struct msgb *msg)
goto exit;
}
+ /* Only if the current ARFCN differs */
+ if (l1l->trx->band_arfcn != band_arfcn) {
+ /* Update current ARFCN */
+ l1l->trx->band_arfcn = band_arfcn;
+
+ /* Tune transceiver to required ARFCN */
+ trx_if_cmd_rxtune(l1l->trx, band_arfcn);
+ trx_if_cmd_txtune(l1l->trx, band_arfcn);
+ }
+
/* Update TSC (Training Sequence Code) */
l1l->trx->tsc = est_req->tsc;