diff options
author | Harald Welte <laforge@gnumonks.org> | 2017-02-07 19:58:41 +0100 |
---|---|---|
committer | Daniel Willmann <daniel@totalueberwachung.de> | 2017-02-14 16:54:36 +0100 |
commit | 2112a7c333f984e8c03c3f675babf71943370f27 (patch) | |
tree | 61aaf1ded909afa35b48c0656cd5e64ed947ee29 | |
parent | dce6c09b30dd709467216d325bf38845a98fe75b (diff) |
tx_power: Change PA calibration tables to use delta vales
It seems more user friendly to look at a calibration table in terms of
the delta (positive or negative) compared to the nominal gain value,
rather than a collection of absolute gain values. It has the added
benefit that the (API/data model) user doesn't have to specify a gain
value for each ARFCN, but rather can rely on the default nominal gain in
absence of a calibration table for this specific unit.
Change-Id: I7311815902a88d2fc9d211cf4c62fa6fdc5e86ad
-rw-r--r-- | include/osmo-bts/tx_power.h | 2 | ||||
-rw-r--r-- | src/common/tx_power.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/include/osmo-bts/tx_power.h b/include/osmo-bts/tx_power.h index 1d76864b..8d099bca 100644 --- a/include/osmo-bts/tx_power.h +++ b/include/osmo-bts/tx_power.h @@ -8,7 +8,7 @@ /* PA calibration table */ struct pa_calibration { - int gain_mdB[1024]; /* gain provided at given ARFCN */ + int delta_mdB[1024]; /* gain delta at given ARFCN */ /* FIXME: thermal calibration */ }; diff --git a/src/common/tx_power.c b/src/common/tx_power.c index d8c90b2b..f3b9e31b 100644 --- a/src/common/tx_power.c +++ b/src/common/tx_power.c @@ -33,12 +33,12 @@ static int get_pa_drive_level_mdBm(const struct power_amp *pa, int desired_p_out_mdBm, unsigned int arfcn) { - if (arfcn >= ARRAY_SIZE(pa->calib.gain_mdB)) + if (arfcn >= ARRAY_SIZE(pa->calib.delta_mdB)) return INT_MIN; /* FIXME: temperature compensation */ - return desired_p_out_mdBm - pa->calib.gain_mdB[arfcn]; + return desired_p_out_mdBm - pa->nominal_gain_mdB - pa->calib.delta_mdB[arfcn]; } /* maximum output power of the system */ |