diff options
author | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2022-07-29 04:21:40 +0700 |
---|---|---|
committer | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2022-07-29 20:35:19 +0700 |
commit | f8822e476d35633089e70b6ab7286ca3984000e6 (patch) | |
tree | 8894f5fd9218f7455b6906ca2614e68f91729d13 | |
parent | 3e023128dc23d842ceab838ed63f9864a72a4b17 (diff) |
trxcon: move L1 params from struct trx_instance to trxcon_inst
Change-Id: Ifbd9bb17d63ab1d8712d0c8022a62117a48c6384
Related: OS#5599
-rw-r--r-- | src/host/trxcon/include/osmocom/bb/trxcon/trx_if.h | 3 | ||||
-rw-r--r-- | src/host/trxcon/include/osmocom/bb/trxcon/trxcon.h | 7 | ||||
-rw-r--r-- | src/host/trxcon/src/sched_prim.c | 2 | ||||
-rw-r--r-- | src/host/trxcon/src/trxcon.c | 8 | ||||
-rw-r--r-- | src/host/trxcon/src/trxcon_fsm.c | 22 |
5 files changed, 23 insertions, 19 deletions
diff --git a/src/host/trxcon/include/osmocom/bb/trxcon/trx_if.h b/src/host/trxcon/include/osmocom/bb/trxcon/trx_if.h index 18d71ccd..1faa6105 100644 --- a/src/host/trxcon/include/osmocom/bb/trxcon/trx_if.h +++ b/src/host/trxcon/include/osmocom/bb/trxcon/trx_if.h @@ -39,9 +39,6 @@ struct trx_instance { /* GSM L1 specific */ uint16_t pm_band_arfcn_start; uint16_t pm_band_arfcn_stop; - uint16_t band_arfcn; - uint8_t tx_power; - int8_t ta; }; struct trx_ctrl_msg { diff --git a/src/host/trxcon/include/osmocom/bb/trxcon/trxcon.h b/src/host/trxcon/include/osmocom/bb/trxcon/trxcon.h index b982193b..7b459ec5 100644 --- a/src/host/trxcon/include/osmocom/bb/trxcon/trxcon.h +++ b/src/host/trxcon/include/osmocom/bb/trxcon/trxcon.h @@ -139,6 +139,13 @@ struct trxcon_inst { /* L1/L2 interfaces */ struct trx_instance *trx; struct l1ctl_client *l1c; + + /* L1 parameters */ + struct { + uint16_t band_arfcn; + uint8_t tx_power; + int8_t ta; + } l1p; }; struct trxcon_inst *trxcon_inst_alloc(void *ctx, unsigned int id); diff --git a/src/host/trxcon/src/sched_prim.c b/src/host/trxcon/src/sched_prim.c index 33d48de4..9b6d28d3 100644 --- a/src/host/trxcon/src/sched_prim.c +++ b/src/host/trxcon/src/sched_prim.c @@ -186,7 +186,7 @@ static struct l1sched_ts_prim *prim_compose_mr(struct l1sched_lchan_state *lchan * decide whether to update the cached L1 SACCH header here. */ if (!cached) { -#warning "FIXME: no direct access to trx->{tx_power,ta}" +#warning "FIXME: no direct access to trxcon->l1p.{tx_power,ta}" #if 0 prim->payload[0] = lchan->ts->sched->trx->tx_power; prim->payload[1] = lchan->ts->sched->trx->ta; diff --git a/src/host/trxcon/src/trxcon.c b/src/host/trxcon/src/trxcon.c index d4f4214f..fe3d6638 100644 --- a/src/host/trxcon/src/trxcon.c +++ b/src/host/trxcon/src/trxcon.c @@ -180,7 +180,7 @@ int l1sched_handle_data_ind(struct l1sched_lchan_state *lchan, if (data != NULL && data_len > 0) { trxcon_gsmtap_send(lchan_desc, meas->fn, lchan->ts->index, - trxcon->trx->band_arfcn, meas->rssi, 0, + trxcon->l1p.band_arfcn, meas->rssi, 0, data, data_len); } @@ -205,7 +205,7 @@ int l1sched_handle_data_cnf(struct l1sched_lchan_state *lchan, .chan_nr = lchan_desc->chan_nr | lchan->ts->index, .link_id = lchan_desc->link_id, .frame_nr = htonl(fn), - .band_arfcn = htons(trxcon->trx->band_arfcn), + .band_arfcn = htons(trxcon->l1p.band_arfcn), }; switch (dt) { @@ -226,7 +226,7 @@ int l1sched_handle_data_cnf(struct l1sched_lchan_state *lchan, rach = (struct l1sched_ts_prim_rach *)lchan->prim->payload; - rc = l1ctl_tx_rach_conf(trxcon->l1c, trxcon->trx->band_arfcn, fn); + rc = l1ctl_tx_rach_conf(trxcon->l1c, trxcon->l1p.band_arfcn, fn); if (lchan->prim->type == L1SCHED_PRIM_RACH11) { ra_buf[0] = (uint8_t)(rach->ra >> 3); ra_buf[1] = (uint8_t)(rach->ra & 0x07); @@ -247,7 +247,7 @@ int l1sched_handle_data_cnf(struct l1sched_lchan_state *lchan, } trxcon_gsmtap_send(lchan_desc, fn, lchan->ts->index, - trxcon->trx->band_arfcn | ARFCN_UPLINK, + trxcon->l1p.band_arfcn | ARFCN_UPLINK, 0, 0, data, data_len); return rc; diff --git a/src/host/trxcon/src/trxcon_fsm.c b/src/host/trxcon/src/trxcon_fsm.c index 1d3b515f..0f06c29c 100644 --- a/src/host/trxcon/src/trxcon_fsm.c +++ b/src/host/trxcon/src/trxcon_fsm.c @@ -65,10 +65,10 @@ static void trxcon_allstate_action(struct osmo_fsm_inst *fi, { const struct trxcon_param_set_config_req *req = data; - if (trxcon->trx->ta != req->timing_advance) + if (trxcon->l1p.ta != req->timing_advance) trx_if_cmd_setta(trxcon->trx, req->timing_advance); - trxcon->trx->tx_power = req->tx_power; - trxcon->trx->ta = req->timing_advance; + trxcon->l1p.tx_power = req->tx_power; + trxcon->l1p.ta = req->timing_advance; break; } default: @@ -82,7 +82,7 @@ static int trxcon_timer_cb(struct osmo_fsm_inst *fi) switch (fi->state) { case TRXCON_ST_FBSB_SEARCH: - l1ctl_tx_fbsb_fail(trxcon->l1c, trxcon->trx->band_arfcn); + l1ctl_tx_fbsb_fail(trxcon->l1c, trxcon->l1p.band_arfcn); osmo_fsm_inst_state_chg(fi, TRXCON_ST_RESET, 0, 0); return 0; default: @@ -105,9 +105,9 @@ static void trxcon_st_reset_action(struct osmo_fsm_inst *fi, l1sched_configure_ts(trxcon->sched, 0, req->pchan_config); /* Only if current ARFCN differs */ - if (trxcon->trx->band_arfcn != req->band_arfcn) { + if (trxcon->l1p.band_arfcn != req->band_arfcn) { /* Update current ARFCN */ - trxcon->trx->band_arfcn = req->band_arfcn; + trxcon->l1p.band_arfcn = req->band_arfcn; /* Tune transceiver to required ARFCN */ trx_if_cmd_rxtune(trxcon->trx, req->band_arfcn); @@ -160,7 +160,7 @@ static void trxcon_st_fbsb_search_action(struct osmo_fsm_inst *fi, case TRXCON_EV_FBSB_SEARCH_RES: osmo_fsm_inst_state_chg(fi, TRXCON_ST_BCCH_CCCH, 0, 0); l1ctl_tx_fbsb_conf(trxcon->l1c, - trxcon->trx->band_arfcn, + trxcon->l1p.band_arfcn, trxcon->sched->bsic); break; default: @@ -238,7 +238,7 @@ static void trxcon_st_bcch_ccch_action(struct osmo_fsm_inst *fi, return; /* Set current ARFCN to an invalid value */ - trxcon->trx->band_arfcn = 0xffff; + trxcon->l1p.band_arfcn = 0xffff; } else { /* Tune transceiver to required ARFCN */ if (trx_if_cmd_rxtune(trxcon->trx, req->h0.band_arfcn)) @@ -247,7 +247,7 @@ static void trxcon_st_bcch_ccch_action(struct osmo_fsm_inst *fi, return; /* Update current ARFCN */ - trxcon->trx->band_arfcn = req->h0.band_arfcn; + trxcon->l1p.band_arfcn = req->h0.band_arfcn; } rc = l1sched_configure_ts(trxcon->sched, req->chan_nr & 0x07, config); @@ -275,7 +275,7 @@ static void trxcon_st_bcch_ccch_action(struct osmo_fsm_inst *fi, .chan_nr = ind->chan_nr, .link_id = ind->link_id, .frame_nr = htonl(ind->frame_nr), - .band_arfcn = htons(trxcon->trx->band_arfcn), + .band_arfcn = htons(trxcon->l1p.band_arfcn), .fire_crc = ind->data_len > 0 ? 0 : 2, .rx_level = dbm2rxlev(ind->rssi), .num_biterr = ind->n_errors, @@ -370,7 +370,7 @@ static void trxcon_st_dedicated_action(struct osmo_fsm_inst *fi, .chan_nr = ind->chan_nr, .link_id = ind->link_id, .frame_nr = htonl(ind->frame_nr), - .band_arfcn = htons(trxcon->trx->band_arfcn), + .band_arfcn = htons(trxcon->l1p.band_arfcn), .fire_crc = ind->data_len > 0 ? 0 : 2, .rx_level = dbm2rxlev(ind->rssi), .num_biterr = ind->n_errors, |