aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/x300
diff options
context:
space:
mode:
Diffstat (limited to 'host/lib/usrp/x300')
-rw-r--r--host/lib/usrp/x300/x300_adc_ctrl.cpp4
-rw-r--r--host/lib/usrp/x300/x300_adc_ctrl.hpp2
-rw-r--r--host/lib/usrp/x300/x300_clock_ctrl.cpp4
-rw-r--r--host/lib/usrp/x300/x300_clock_ctrl.hpp2
-rw-r--r--host/lib/usrp/x300/x300_dac_ctrl.cpp4
-rw-r--r--host/lib/usrp/x300/x300_dac_ctrl.hpp2
-rw-r--r--host/lib/usrp/x300/x300_impl.cpp12
-rw-r--r--host/lib/usrp/x300/x300_impl.hpp1
8 files changed, 28 insertions, 3 deletions
diff --git a/host/lib/usrp/x300/x300_adc_ctrl.cpp b/host/lib/usrp/x300/x300_adc_ctrl.cpp
index ab2bafef8..b0e4e4b95 100644
--- a/host/lib/usrp/x300/x300_adc_ctrl.cpp
+++ b/host/lib/usrp/x300/x300_adc_ctrl.cpp
@@ -25,6 +25,10 @@
using namespace uhd;
+x300_adc_ctrl::~x300_adc_ctrl(void){
+ /* NOP */
+}
+
/*!
* A X300 codec control specific to the ads62p48 ic.
*/
diff --git a/host/lib/usrp/x300/x300_adc_ctrl.hpp b/host/lib/usrp/x300/x300_adc_ctrl.hpp
index d8c5e145b..90fb88cec 100644
--- a/host/lib/usrp/x300/x300_adc_ctrl.hpp
+++ b/host/lib/usrp/x300/x300_adc_ctrl.hpp
@@ -27,6 +27,8 @@ class x300_adc_ctrl : boost::noncopyable
public:
typedef boost::shared_ptr<x300_adc_ctrl> sptr;
+ virtual ~x300_adc_ctrl(void) = 0;
+
/*!
* Make a codec control for the ADC.
* \param iface a pointer to the interface object
diff --git a/host/lib/usrp/x300/x300_clock_ctrl.cpp b/host/lib/usrp/x300/x300_clock_ctrl.cpp
index 9307c62f0..21411e651 100644
--- a/host/lib/usrp/x300/x300_clock_ctrl.cpp
+++ b/host/lib/usrp/x300/x300_clock_ctrl.cpp
@@ -28,6 +28,10 @@ static const double X300_REF_CLK_OUT_RATE = 10e6;
using namespace uhd;
+x300_clock_ctrl::~x300_clock_ctrl(void){
+ /* NOP */
+}
+
class x300_clock_ctrl_impl : public x300_clock_ctrl {
public:
diff --git a/host/lib/usrp/x300/x300_clock_ctrl.hpp b/host/lib/usrp/x300/x300_clock_ctrl.hpp
index e9904d25c..40b62b09a 100644
--- a/host/lib/usrp/x300/x300_clock_ctrl.hpp
+++ b/host/lib/usrp/x300/x300_clock_ctrl.hpp
@@ -42,6 +42,8 @@ public:
typedef boost::shared_ptr<x300_clock_ctrl> sptr;
+ virtual ~x300_clock_ctrl(void) = 0;
+
static sptr make(uhd::spi_iface::sptr spiface,
const size_t slaveno,
const size_t hw_rev,
diff --git a/host/lib/usrp/x300/x300_dac_ctrl.cpp b/host/lib/usrp/x300/x300_dac_ctrl.cpp
index d2be70582..62fe55c35 100644
--- a/host/lib/usrp/x300/x300_dac_ctrl.cpp
+++ b/host/lib/usrp/x300/x300_dac_ctrl.cpp
@@ -32,6 +32,10 @@ using namespace uhd;
#define read_ad9146_reg(addr) \
(_iface->read_spi(_slaveno, spi_config_t::EDGE_RISE, ((addr) << 8) | (1 << 15), 16) & 0xff)
+x300_dac_ctrl::~x300_dac_ctrl(void){
+ /* NOP */
+}
+
/*!
* A X300 codec control specific to the ad9146 ic.
*/
diff --git a/host/lib/usrp/x300/x300_dac_ctrl.hpp b/host/lib/usrp/x300/x300_dac_ctrl.hpp
index 6fe515673..5fd7e13d8 100644
--- a/host/lib/usrp/x300/x300_dac_ctrl.hpp
+++ b/host/lib/usrp/x300/x300_dac_ctrl.hpp
@@ -27,6 +27,8 @@ class x300_dac_ctrl : boost::noncopyable
public:
typedef boost::shared_ptr<x300_dac_ctrl> sptr;
+ virtual ~x300_dac_ctrl(void) = 0;
+
/*!
* Make a codec control for the DAC.
* \param iface a pointer to the interface object
diff --git a/host/lib/usrp/x300/x300_impl.cpp b/host/lib/usrp/x300/x300_impl.cpp
index 9af7bdbfb..1494a100e 100644
--- a/host/lib/usrp/x300/x300_impl.cpp
+++ b/host/lib/usrp/x300/x300_impl.cpp
@@ -326,7 +326,7 @@ static device::sptr x300_make(const device_addr_t &device_addr)
UHD_STATIC_BLOCK(register_x300_device)
{
- device::register_device(&x300_find, &x300_make);
+ device::register_device(&x300_find, &x300_make, device::USRP);
}
static void x300_load_fw(wb_iface::sptr fw_reg_ctrl, const std::string &file_name)
@@ -355,6 +355,8 @@ static void x300_load_fw(wb_iface::sptr fw_reg_ctrl, const std::string &file_nam
x300_impl::x300_impl(const uhd::device_addr_t &dev_addr)
{
UHD_MSG(status) << "X300 initialization sequence..." << std::endl;
+ _type = device::USRP;
+ _ignore_cal_file = dev_addr.has_key("ignore-cal-file");
_async_md.reset(new async_md_type(1000/*messages deep*/));
_tree = uhd::property_tree::make();
_tree->create<std::string>("/name").set("X-Series Device");
@@ -1076,12 +1078,16 @@ void x300_impl::setup_radio(const size_t mb_i, const std::string &slot_name)
void x300_impl::set_rx_fe_corrections(const uhd::fs_path &mb_path, const std::string &fe_name, const double lo_freq)
{
- apply_rx_fe_corrections(this->get_tree()->subtree(mb_path), fe_name, lo_freq);
+ if(not _ignore_cal_file){
+ apply_rx_fe_corrections(this->get_tree()->subtree(mb_path), fe_name, lo_freq);
+ }
}
void x300_impl::set_tx_fe_corrections(const uhd::fs_path &mb_path, const std::string &fe_name, const double lo_freq)
{
- apply_tx_fe_corrections(this->get_tree()->subtree(mb_path), fe_name, lo_freq);
+ if(not _ignore_cal_file){
+ apply_tx_fe_corrections(this->get_tree()->subtree(mb_path), fe_name, lo_freq);
+ }
}
boost::uint32_t get_pcie_dma_channel(boost::uint8_t destination, boost::uint8_t prefix)
diff --git a/host/lib/usrp/x300/x300_impl.hpp b/host/lib/usrp/x300/x300_impl.hpp
index 004f73f38..ff0af9069 100644
--- a/host/lib/usrp/x300/x300_impl.hpp
+++ b/host/lib/usrp/x300/x300_impl.hpp
@@ -322,6 +322,7 @@ private:
void set_rx_fe_corrections(const uhd::fs_path &mb_path, const std::string &fe_name, const double lo_freq);
void set_tx_fe_corrections(const uhd::fs_path &mb_path, const std::string &fe_name, const double lo_freq);
+ bool _ignore_cal_file;
/*! Update the IQ MUX settings for the radio peripheral according to given subdev spec.