diff options
Diffstat (limited to 'host/lib/usrp/common')
| -rw-r--r-- | host/lib/usrp/common/ad9361_ctrl.hpp | 2 | ||||
| -rw-r--r-- | host/lib/usrp/common/ad9361_driver/ad9361_device.cpp | 25 | 
2 files changed, 6 insertions, 21 deletions
diff --git a/host/lib/usrp/common/ad9361_ctrl.hpp b/host/lib/usrp/common/ad9361_ctrl.hpp index 7d44700fe..f831f870d 100644 --- a/host/lib/usrp/common/ad9361_ctrl.hpp +++ b/host/lib/usrp/common/ad9361_ctrl.hpp @@ -52,7 +52,7 @@ public:      static uhd::meta_range_t get_gain_range(const std::string &which)      {          if(which[0] == 'R') { -            return uhd::meta_range_t(0.0, 73.0, 1.0); +            return uhd::meta_range_t(0.0, 76.0, 1.0);          } else {              return uhd::meta_range_t(0.0, 89.75, 0.25);          } diff --git a/host/lib/usrp/common/ad9361_driver/ad9361_device.cpp b/host/lib/usrp/common/ad9361_driver/ad9361_device.cpp index 8ee7bf231..1ea771db0 100644 --- a/host/lib/usrp/common/ad9361_driver/ad9361_device.cpp +++ b/host/lib/usrp/common/ad9361_driver/ad9361_device.cpp @@ -1854,31 +1854,16 @@ double ad9361_device_t::tune(direction_t direction, const double value)  /* Set the gain of RX1, RX2, TX1, or TX2.   * - * Note that the 'value' passed to this function is the actual gain value, - * _not_ the gain index. This is the opposite of the eval software's GUI! - * Also note that the RX chains are done in terms of gain, and the TX chains - * are done in terms of attenuation. */ + * Note that the 'value' passed to this function is the gain index  + * for RX. Also note that the RX chains are done in terms of gain, and  + * the TX chains  are done in terms of attenuation. */  double ad9361_device_t::set_gain(direction_t direction, chain_t chain, const double value)  {      boost::lock_guard<boost::recursive_mutex> lock(_mutex);      if (direction == RX) { -        /* Indexing the gain tables requires an offset from the requested -         * amount of total gain in dB: -         *      < 1300MHz: dB + 5 -         *      >= 1300MHz and < 4000MHz: dB + 3 -         *      >= 4000MHz and <= 6000MHz: dB + 14 -         */ -        int gain_offset = 0; -        if (_rx_freq < 1300e6) { -            gain_offset = 5; -        } else if (_rx_freq < 4000e6) { -            gain_offset = 3; -        } else { -            gain_offset = 14; -        } -        int gain_index = static_cast<int>(value + gain_offset); +        int gain_index = static_cast<int>(value);          /* Clip the gain values to the proper min/max gain values. */          if (gain_index > 76) @@ -1894,7 +1879,7 @@ double ad9361_device_t::set_gain(direction_t direction, chain_t chain, const dou              _io_iface->poke8(0x10c, gain_index);          } -        return gain_index - gain_offset; +        return gain_index;      } else {          /* Setting the below bits causes a change in the TX attenuation word           * to immediately take effect. */  | 
