aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp
diff options
context:
space:
mode:
authorAshish Chaudhari <ashish@ettus.com>2016-09-26 15:17:23 -0700
committerMartin Braun <martin.braun@ettus.com>2016-09-27 09:03:13 -0700
commit2876c159ec268e70ade5139ac73b146fd00b83ca (patch)
tree27cae076b06815dac9786a4a33d12de65131bf23 /host/lib/usrp
parent64423ac3cc011af21622fb296b6d5400879b5da3 (diff)
downloaduhd-2876c159ec268e70ade5139ac73b146fd00b83ca.tar.gz
uhd-2876c159ec268e70ade5139ac73b146fd00b83ca.tar.bz2
uhd-2876c159ec268e70ade5139ac73b146fd00b83ca.zip
bugfix: db eeprom id not being written for X3x0
- The value of db_eeprom_t being written was stale due to a caching bug - Updated subscriber for db_eeprom_t to write the EEPROM state *and* cache it locally Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
Diffstat (limited to 'host/lib/usrp')
-rw-r--r--host/lib/usrp/x300/x300_impl.cpp5
-rw-r--r--host/lib/usrp/x300/x300_impl.hpp1
-rw-r--r--host/lib/usrp/x300/x300_radio_ctrl_impl.cpp10
-rw-r--r--host/lib/usrp/x300/x300_radio_ctrl_impl.hpp2
4 files changed, 10 insertions, 8 deletions
diff --git a/host/lib/usrp/x300/x300_impl.cpp b/host/lib/usrp/x300/x300_impl.cpp
index 543ac9702..e4f6d6fb8 100644
--- a/host/lib/usrp/x300/x300_impl.cpp
+++ b/host/lib/usrp/x300/x300_impl.cpp
@@ -1445,11 +1445,6 @@ bool x300_impl::is_pps_present(mboard_members_t& mb)
* eeprom
**********************************************************************/
-void x300_impl::set_db_eeprom(i2c_iface::sptr i2c, const size_t addr, const uhd::usrp::dboard_eeprom_t &db_eeprom)
-{
- db_eeprom.store(*i2c, addr);
-}
-
void x300_impl::set_mb_eeprom(i2c_iface::sptr i2c, const mboard_eeprom_t &mb_eeprom)
{
i2c_iface::sptr eeprom16 = i2c->eeprom16();
diff --git a/host/lib/usrp/x300/x300_impl.hpp b/host/lib/usrp/x300/x300_impl.hpp
index f7dde142e..ee42dcf3e 100644
--- a/host/lib/usrp/x300/x300_impl.hpp
+++ b/host/lib/usrp/x300/x300_impl.hpp
@@ -266,7 +266,6 @@ private:
bool wait_for_clk_locked(mboard_members_t& mb, boost::uint32_t which, double timeout);
bool is_pps_present(mboard_members_t& mb);
- void set_db_eeprom(uhd::i2c_iface::sptr i2c, const size_t, const uhd::usrp::dboard_eeprom_t &);
void set_mb_eeprom(uhd::i2c_iface::sptr i2c, const uhd::usrp::mboard_eeprom_t &);
void check_fw_compat(const uhd::fs_path &mb_path, uhd::wb_iface::sptr iface);
diff --git a/host/lib/usrp/x300/x300_radio_ctrl_impl.cpp b/host/lib/usrp/x300/x300_radio_ctrl_impl.cpp
index 88dc73896..e11548703 100644
--- a/host/lib/usrp/x300/x300_radio_ctrl_impl.cpp
+++ b/host/lib/usrp/x300/x300_radio_ctrl_impl.cpp
@@ -327,8 +327,8 @@ void x300_radio_ctrl_impl::setup_radio(
//Add to tree
_tree->create<dboard_eeprom_t>(db_path / EEPROM_PATHS[i])
.set(_db_eeproms[addr])
- .add_coerced_subscriber(boost::bind(&dboard_eeprom_t::store,
- _db_eeproms[addr], boost::ref(*zpu_i2c), (BASE_ADDR | addr)));
+ .add_coerced_subscriber(boost::bind(&x300_radio_ctrl_impl::_set_db_eeprom,
+ this, zpu_i2c, (BASE_ADDR | addr), _1));
}
//create a new dboard interface
@@ -860,6 +860,12 @@ void x300_radio_ctrl_impl::_check_adc(const boost::uint32_t val)
}
}
+void x300_radio_ctrl_impl::_set_db_eeprom(i2c_iface::sptr i2c, const size_t addr, const uhd::usrp::dboard_eeprom_t &db_eeprom)
+{
+ db_eeprom.store(*i2c, addr);
+ _db_eeproms[addr] = db_eeprom;
+}
+
/****************************************************************************
* Helpers
***************************************************************************/
diff --git a/host/lib/usrp/x300/x300_radio_ctrl_impl.hpp b/host/lib/usrp/x300/x300_radio_ctrl_impl.hpp
index 4f7f43b7d..46540a0c7 100644
--- a/host/lib/usrp/x300/x300_radio_ctrl_impl.hpp
+++ b/host/lib/usrp/x300/x300_radio_ctrl_impl.hpp
@@ -156,6 +156,8 @@ private:
void _check_adc(const boost::uint32_t val);
+ void _set_db_eeprom(uhd::i2c_iface::sptr i2c, const size_t, const uhd::usrp::dboard_eeprom_t &);
+
void set_rx_fe_corrections(const uhd::fs_path &db_path, const uhd::fs_path &rx_fe_corr_path, const double lo_freq);
void set_tx_fe_corrections(const uhd::fs_path &db_path, const uhd::fs_path &tx_fe_corr_path, const double lo_freq);