diff options
Diffstat (limited to 'host/lib')
-rw-r--r-- | host/lib/usrp/dboard/zbx/zbx_cpld_ctrl.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/host/lib/usrp/dboard/zbx/zbx_cpld_ctrl.cpp b/host/lib/usrp/dboard/zbx/zbx_cpld_ctrl.cpp index 8899f2a18..352a7def9 100644 --- a/host/lib/usrp/dboard/zbx/zbx_cpld_ctrl.cpp +++ b/host/lib/usrp/dboard/zbx/zbx_cpld_ctrl.cpp @@ -273,7 +273,10 @@ void zbx_cpld_ctrl::set_tx_antenna_switches( {tx_amp::HIGHBAND, {zbx_cpld_regs_t::TX0_ANT_11_HIGHBAND_AMP, zbx_cpld_regs_t::TX0_ANT_10_HIGHBAND_AMP}} }; // clang-format on - std::tie(_regs.TX0_ANT_11[idx], _regs.TX0_ANT_10[idx]) = amp_map.at(amp); + if (idx == ATR_ADDR_TX || idx == ATR_ADDR_XX) { + _regs.TX0_ANT_11[idx] = std::get<0>(amp_map.at(amp)); + } + _regs.TX0_ANT_10[idx] = std::get<1>(amp_map.at(amp)); } else if (antenna == ANTENNA_CAL_LOOPBACK) { _regs.TX0_ANT_10[idx] = zbx_cpld_regs_t::TX0_ANT_10_CAL_LOOPBACK; _regs.RX0_ANT_1[idx] = zbx_cpld_regs_t::RX0_ANT_1_CAL_LOOPBACK; @@ -294,7 +297,10 @@ void zbx_cpld_ctrl::set_tx_antenna_switches( {tx_amp::HIGHBAND, {zbx_cpld_regs_t::TX1_ANT_11_HIGHBAND_AMP, zbx_cpld_regs_t::TX1_ANT_10_HIGHBAND_AMP}} }; // clang-format on - std::tie(_regs.TX1_ANT_11[idx], _regs.TX1_ANT_10[idx]) = amp_map.at(amp); + if (idx == ATR_ADDR_TX || idx == ATR_ADDR_XX) { + _regs.TX1_ANT_11[idx] = std::get<0>(amp_map.at(amp)); + } + _regs.TX1_ANT_10[idx] = std::get<1>(amp_map.at(amp)); } else if (antenna == ANTENNA_CAL_LOOPBACK) { _regs.TX1_ANT_10[idx] = zbx_cpld_regs_t::TX1_ANT_10_CAL_LOOPBACK; _regs.RX1_ANT_1[idx] = zbx_cpld_regs_t::RX1_ANT_1_CAL_LOOPBACK; |