summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2013-02-27 16:32:32 +0100
committerSteve Markgraf <steve@steve-m.de>2021-10-23 18:51:19 +0200
commitc16bd783641f28146240b39c0205e4c03c048ff8 (patch)
treebd1762e08e67b2c9b11aae80bdf433f50d8d91bc
parent8574a54e67ef235d0bd67a54cfd29804a116482e (diff)
Set BTS mode at transceiver application only after successful sync to cell
-rw-r--r--src/host/layer23/src/transceiver/l1ctl.c13
-rw-r--r--src/host/layer23/src/transceiver/l1ctl_link.h2
2 files changed, 14 insertions, 1 deletions
diff --git a/src/host/layer23/src/transceiver/l1ctl.c b/src/host/layer23/src/transceiver/l1ctl.c
index 52ea80b0..1c764b09 100644
--- a/src/host/layer23/src/transceiver/l1ctl.c
+++ b/src/host/layer23/src/transceiver/l1ctl.c
@@ -89,6 +89,9 @@ l1ctl_tx_fbsb_req(struct l1ctl_link *l1l,
struct msgb *msg;
struct l1ctl_fbsb_req *req;
+ if (l1l->sync)
+ return -EIO;
+
LOGP(DL1C, LOGL_INFO, "Sync Req\n");
msg = _l1ctl_alloc(L1CTL_FBSB_REQ);
@@ -120,6 +123,9 @@ l1ctl_tx_bts_mode(struct l1ctl_link *l1l, uint8_t enabled, uint8_t *type,
struct l1ctl_bts_mode *be;
int i;
+ if (!l1l->sync)
+ return -EIO;
+
msg = _l1ctl_alloc(L1CTL_BTS_MODE);
if (!msg)
return -1;
@@ -147,6 +153,9 @@ l1ctl_tx_bts_burst_req(struct l1ctl_link *l1l,
struct msgb *msg;
struct l1ctl_bts_burst_req *br;
+ if (!l1l->sync)
+ return -EIO;
+
msg = _l1ctl_alloc(L1CTL_BTS_BURST_REQ);
if (!msg)
return -1;
@@ -325,7 +334,9 @@ _l1ctl_rx_fbsb_conf(struct l1ctl_link *l1l, struct msgb *msg)
LOGP(DAPP, LOGL_INFO, "Sync failed, retrying ... \n");
rc = l1ctl_tx_fbsb_req(l1l, l1l->as->arfcn_sync, L1CTL_FBSB_F_FB01SB, 100, 0, CCCH_MODE_NONE);
} else {
- LOGP(DAPP, LOGL_INFO, "Sync acquired, wait for BCCH ...\n");
+ LOGP(DAPP, LOGL_INFO, "Sync acquired, setting BTS mode ...\n");
+ l1l->sync = 1;
+ l1ctl_tx_bts_mode(l1l, l1l->trx->power, l1l->trx->type, l1l->trx->bsic, l1l->trx->arfcn, l1l->trx->gain, l1l->tx_mask, l1l->rx_mask);
}
rc = 0;
diff --git a/src/host/layer23/src/transceiver/l1ctl_link.h b/src/host/layer23/src/transceiver/l1ctl_link.h
index 15960242..07b169b6 100644
--- a/src/host/layer23/src/transceiver/l1ctl_link.h
+++ b/src/host/layer23/src/transceiver/l1ctl_link.h
@@ -42,6 +42,8 @@ struct l1ctl_link
struct trx *trx;
uint8_t tx_mask, rx_mask;
+
+ int sync;
};