summaryrefslogtreecommitdiff
path: root/libloragw/src/loragw_hal.c
diff options
context:
space:
mode:
Diffstat (limited to 'libloragw/src/loragw_hal.c')
-rw-r--r--libloragw/src/loragw_hal.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/libloragw/src/loragw_hal.c b/libloragw/src/loragw_hal.c
index c723be9..2627aaf 100644
--- a/libloragw/src/loragw_hal.c
+++ b/libloragw/src/loragw_hal.c
@@ -1439,8 +1439,14 @@ int lgw_send(struct lgw_pkt_tx_s pkt_data) {
/* loading TX imbalance correction */
target_mix_gain = txgain_lut.lut[pow_index].mix_gain;
- /* Set digital gain from LUT */
- lgw_reg_w(LGW_TX_GAIN, txgain_lut.lut[pow_index].dig_gain);
+
+ if (pkt_data.dig_gain == -1 || pkt_data.dig_gain > 3) {
+ /* Set digital gain from LUT */
+ lgw_reg_w(LGW_TX_GAIN, txgain_lut.lut[pow_index].dig_gain);
+ } else {
+ /* Set digital gain set by forwarder */
+ lgw_reg_w(LGW_TX_GAIN, pkt_data.dig_gain);
+ }
}
if (pkt_data.rf_chain == 0) { /* use radio A calibration table */