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.cpp6
-rw-r--r--host/lib/usrp/x300/x300_adc_ctrl.hpp4
-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.cpp6
-rw-r--r--host/lib/usrp/x300/x300_dac_ctrl.hpp4
-rw-r--r--host/lib/usrp/x300/x300_impl.cpp12
-rw-r--r--host/lib/usrp/x300/x300_impl.hpp1
8 files changed, 32 insertions, 7 deletions
diff --git a/host/lib/usrp/x300/x300_adc_ctrl.cpp b/host/lib/usrp/x300/x300_adc_ctrl.cpp
index 75bfb048c..53d1662ae 100644
--- a/host/lib/usrp/x300/x300_adc_ctrl.cpp
+++ b/host/lib/usrp/x300/x300_adc_ctrl.cpp
@@ -1,5 +1,5 @@
//
-// Copyright 2010-2013 Ettus Research LLC
+// Copyright 2010-2014 Ettus Research LLC
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
@@ -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 fce40a434..c8ce19c94 100644
--- a/host/lib/usrp/x300/x300_adc_ctrl.hpp
+++ b/host/lib/usrp/x300/x300_adc_ctrl.hpp
@@ -1,5 +1,5 @@
//
-// Copyright 2010-2013 Ettus Research LLC
+// Copyright 2010-2014 Ettus Research LLC
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
@@ -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 dbaa67592..ffb97e147 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 5eae9cc48..a9d9a7730 100644
--- a/host/lib/usrp/x300/x300_dac_ctrl.cpp
+++ b/host/lib/usrp/x300/x300_dac_ctrl.cpp
@@ -1,5 +1,5 @@
//
-// Copyright 2010-2013 Ettus Research LLC
+// Copyright 2010-2014 Ettus Research LLC
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
@@ -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 0db7e1e35..78046cee5 100644
--- a/host/lib/usrp/x300/x300_dac_ctrl.hpp
+++ b/host/lib/usrp/x300/x300_dac_ctrl.hpp
@@ -1,5 +1,5 @@
//
-// Copyright 2010-2013 Ettus Research LLC
+// Copyright 2010-2014 Ettus Research LLC
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
@@ -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 1b651065d..a670f28c4 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");
@@ -1081,12 +1083,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 578e96383..1130c24d6 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.