trxcon: move L1 params from struct trx_instance to trxcon_inst
Change-Id: Ifbd9bb17d63ab1d8712d0c8022a62117a48c6384 Related: OS#5599
This commit is contained in:
parent
3e023128dc
commit
f8822e476d
|
@ -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 {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue