From 1a86e65a18ac7005f0a4dae3bc7fc26e8041267c Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Fri, 5 Nov 2010 17:56:23 -0700 Subject: uhd: for eeprom writeback, write and set only those values changed --- host/lib/usrp/usrp2/mboard_impl.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'host/lib/usrp/usrp2') diff --git a/host/lib/usrp/usrp2/mboard_impl.cpp b/host/lib/usrp/usrp2/mboard_impl.cpp index 079f096cb..df98ba275 100644 --- a/host/lib/usrp/usrp2/mboard_impl.cpp +++ b/host/lib/usrp/usrp2/mboard_impl.cpp @@ -314,8 +314,10 @@ void usrp2_mboard_impl::set(const wax::obj &key, const wax::obj &val){ return; case MBOARD_PROP_EEPROM_MAP: - _iface->mb_eeprom = val.as(); - _iface->mb_eeprom.commit(*_iface, mboard_eeprom_t::MAP_NXXX); + // Step1: commit the map, writing only those values set. + // Step2: readback the entire eeprom map into the iface. + val.as().commit(*_iface, mboard_eeprom_t::MAP_NXXX); + _iface->mb_eeprom = mboard_eeprom_t(*_iface, mboard_eeprom_t::MAP_NXXX); return; default: UHD_THROW_PROP_SET_ERROR(); -- cgit v1.2.3