diff options
Diffstat (limited to 'host/lib')
| -rw-r--r-- | host/lib/usrp/common/ad9361_driver/ad9361_device.cpp | 10 | 
1 files changed, 8 insertions, 2 deletions
| diff --git a/host/lib/usrp/common/ad9361_driver/ad9361_device.cpp b/host/lib/usrp/common/ad9361_driver/ad9361_device.cpp index 0505343ab..c3bc2d32b 100644 --- a/host/lib/usrp/common/ad9361_driver/ad9361_device.cpp +++ b/host/lib/usrp/common/ad9361_driver/ad9361_device.cpp @@ -1717,7 +1717,6 @@ void ad9361_device_t::initialize()      _calibrate_baseband_dc_offset();      _calibrate_rf_dc_offset(); -    _calibrate_tx_quadrature();      _calibrate_rx_quadrature();      /* @@ -1855,7 +1854,6 @@ double ad9361_device_t::set_clock_rate(const double req_rate)      _calibrate_baseband_dc_offset();      _calibrate_rf_dc_offset(); -    _calibrate_tx_quadrature();      _calibrate_rx_quadrature();      /* @@ -1970,6 +1968,14 @@ void ad9361_device_t::set_active_chains(bool tx1, bool tx2, bool rx1, bool rx2)      _io_iface->poke8(0x002, _regs.txfilt);      _io_iface->poke8(0x003, _regs.rxfilt); +    /* +     * Last unconditional Tx calibration point. Any later Tx calibration will +     * require user intervention (currently triggered by tuning difference that +     * is > 100 MHz). Late calibration provides better performance. +     */ +    if (tx1 | tx2) +        _calibrate_tx_quadrature(); +      /* Put back into FDD state if necessary */      if (set_back_to_fdd)          _io_iface->poke8(0x014, 0x21); | 
