aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib
diff options
context:
space:
mode:
authorTrung N Tran <trung.tran@ettus.com>2017-12-11 19:52:12 -0800
committerMartin Braun <martin.braun@ettus.com>2017-12-22 15:05:58 -0800
commitea7cc7f8250cd9bdb41c1f22703d38be91fb6a84 (patch)
tree5223a5f7f12d2de0612a8ff3e21df2dfb4d3a759 /host/lib
parent9051301033f8a366fe04052c162d0a48495334e2 (diff)
downloaduhd-ea7cc7f8250cd9bdb41c1f22703d38be91fb6a84.tar.gz
uhd-ea7cc7f8250cd9bdb41c1f22703d38be91fb6a84.tar.bz2
uhd-ea7cc7f8250cd9bdb41c1f22703d38be91fb6a84.zip
mg: external LO need update correct freq
Need to update rf freq to half of ad9371
Diffstat (limited to 'host/lib')
-rw-r--r--host/lib/usrp/dboard/magnesium/magnesium_radio_ctrl_impl.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/host/lib/usrp/dboard/magnesium/magnesium_radio_ctrl_impl.cpp b/host/lib/usrp/dboard/magnesium/magnesium_radio_ctrl_impl.cpp
index c7087532d..8fa500872 100644
--- a/host/lib/usrp/dboard/magnesium/magnesium_radio_ctrl_impl.cpp
+++ b/host/lib/usrp/dboard/magnesium/magnesium_radio_ctrl_impl.cpp
@@ -269,9 +269,20 @@ void magnesium_radio_ctrl_impl::_update_freq(
const size_t chan,
const uhd::direction_t dir
) {
+ const std::string ad9371_source = dir == TX_DIRECTION ?
+ this->get_tx_lo_source(MAGNESIUM_LO1, chan) :
+ this->get_rx_lo_source(MAGNESIUM_LO1, chan)
+ ;
+
+ const double ad9371_freq = ad9371_source == "external" ?
+ _ad9371_freq[dir]/2 :
+ _ad9371_freq[dir]
+ ;
const double rf_freq = _is_low_band[dir] ?
- _ad9371_freq[dir] - _adf4351_freq[dir] :
- _ad9371_freq[dir];
+ ad9371_freq - _adf4351_freq[dir] :
+ ad9371_freq
+ ;
+
UHD_LOG_TRACE(unique_id(),
"RF freq = " << rf_freq);
UHD_ASSERT_THROW(rf_freq >= 0);