summaryrefslogtreecommitdiffstats
path: root/host/lib
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2011-06-17 11:04:11 -0700
committerJosh Blum <josh@joshknows.com>2011-06-17 11:04:11 -0700
commita852b6011c11e32e000ccd18c2009edfe81500ee (patch)
tree17f7647a5ed5cb4dc610b50116bd920c3958356d /host/lib
parenta984d9059a9cd405b18815f5e7669fbd0b0fa555 (diff)
parentbc87971891df7f47c8240a24d2a602c6ae63bbc2 (diff)
downloaduhd-a852b6011c11e32e000ccd18c2009edfe81500ee.tar.gz
uhd-a852b6011c11e32e000ccd18c2009edfe81500ee.tar.bz2
uhd-a852b6011c11e32e000ccd18c2009edfe81500ee.zip
Merge branch 'master' into frontend_work
Conflicts: host/lib/usrp/usrp_e100/io_impl.cpp
Diffstat (limited to 'host/lib')
-rw-r--r--host/lib/transport/libusb1_zero_copy.cpp5
-rw-r--r--host/lib/usrp/b100/b100_ctrl.cpp5
-rw-r--r--host/lib/usrp/usrp2/codec_ctrl.cpp2
-rw-r--r--host/lib/usrp/usrp2/io_impl.cpp5
4 files changed, 5 insertions, 12 deletions
diff --git a/host/lib/transport/libusb1_zero_copy.cpp b/host/lib/transport/libusb1_zero_copy.cpp
index 19a7a3742..f781f890d 100644
--- a/host/lib/transport/libusb1_zero_copy.cpp
+++ b/host/lib/transport/libusb1_zero_copy.cpp
@@ -222,7 +222,6 @@ public:
}
}
//shutdown the threads
- _threads_running = false;
_thread_group.interrupt_all();
_thread_group.join_all();
}
@@ -277,15 +276,13 @@ private:
//! event handler threads
boost::thread_group _thread_group;
- bool _threads_running;
void run_event_loop(boost::barrier &spawn_barrier){
- _threads_running = true;
spawn_barrier.wait();
set_thread_priority_safe();
libusb_context *context = libusb::session::get_global_session()->get_context();
try{
- while(_threads_running){
+ while (not boost::this_thread::interruption_requested()){
timeval tv;
tv.tv_sec = 0;
tv.tv_usec = 100000; //100ms
diff --git a/host/lib/usrp/b100/b100_ctrl.cpp b/host/lib/usrp/b100/b100_ctrl.cpp
index 70decd4c1..2a87703f7 100644
--- a/host/lib/usrp/b100/b100_ctrl.cpp
+++ b/host/lib/usrp/b100/b100_ctrl.cpp
@@ -51,7 +51,6 @@ public:
ctrl_data_t read(boost::uint32_t addr, size_t len);
~b100_ctrl_impl(void) {
- bbl_out_marauding = false;
viking_marauders.interrupt_all();
viking_marauders.join_all();
}
@@ -67,7 +66,6 @@ private:
bounded_buffer<ctrl_data_t> sync_ctrl_fifo;
bounded_buffer<async_metadata_t> async_msg_fifo;
boost::thread_group viking_marauders;
- bool bbl_out_marauding;
uhd::transport::usb_zero_copy::sptr _ctrl_transport;
boost::uint8_t _seq;
@@ -168,11 +166,10 @@ ctrl_data_t b100_ctrl_impl::read(boost::uint32_t addr, size_t len) {
* wait for a control operation to finish before starting another one.
**********************************************************************/
void b100_ctrl_impl::viking_marauder_loop(boost::barrier &spawn_barrier) {
- bbl_out_marauding = true;
spawn_barrier.wait();
set_thread_priority_safe();
- while(bbl_out_marauding){
+ while (not boost::this_thread::interruption_requested()){
managed_recv_buffer::sptr rbuf = _ctrl_transport->get_recv_buff();
if(!rbuf.get()) continue; //that's ok, there are plenty of villages to pillage!
const boost::uint16_t *pkt_buf = rbuf->cast<const boost::uint16_t *>();
diff --git a/host/lib/usrp/usrp2/codec_ctrl.cpp b/host/lib/usrp/usrp2/codec_ctrl.cpp
index ee0ef9ceb..06bf83b15 100644
--- a/host/lib/usrp/usrp2/codec_ctrl.cpp
+++ b/host/lib/usrp/usrp2/codec_ctrl.cpp
@@ -87,7 +87,9 @@ public:
_ads62p44_regs.power_down = ads62p44_regs_t::POWER_DOWN_NORMAL;
_ads62p44_regs.output_interface = ads62p44_regs_t::OUTPUT_INTERFACE_LVDS;
_ads62p44_regs.lvds_current = ads62p44_regs_t::LVDS_CURRENT_2_5MA;
+ _ads62p44_regs.lvds_data_term = ads62p44_regs_t::LVDS_DATA_TERM_100;
this->send_ads62p44_reg(0x11);
+ this->send_ads62p44_reg(0x12);
this->send_ads62p44_reg(0x14);
this->set_rx_analog_gain(1);
break;
diff --git a/host/lib/usrp/usrp2/io_impl.cpp b/host/lib/usrp/usrp2/io_impl.cpp
index ffe9a88e7..df452942c 100644
--- a/host/lib/usrp/usrp2/io_impl.cpp
+++ b/host/lib/usrp/usrp2/io_impl.cpp
@@ -146,7 +146,6 @@ struct usrp2_impl::io_impl{
}
~io_impl(void){
- recv_pirate_crew_raiding = false;
recv_pirate_crew.interrupt_all();
recv_pirate_crew.join_all();
}
@@ -185,7 +184,6 @@ struct usrp2_impl::io_impl{
//methods and variables for the pirate crew
void recv_pirate_loop(boost::barrier &, usrp2_mboard_impl::sptr, zero_copy_if::sptr, size_t);
boost::thread_group recv_pirate_crew;
- bool recv_pirate_crew_raiding;
bounded_buffer<async_metadata_t> async_msg_fifo;
};
@@ -201,14 +199,13 @@ void usrp2_impl::io_impl::recv_pirate_loop(
zero_copy_if::sptr err_xport,
size_t index
){
- recv_pirate_crew_raiding = true;
spawn_barrier.wait();
set_thread_priority_safe();
//store a reference to the flow control monitor (offset by max dsps)
flow_control_monitor &fc_mon = *(this->fc_mons[index*usrp2_mboard_impl::MAX_NUM_DSPS]);
- while(recv_pirate_crew_raiding){
+ while (not boost::this_thread::interruption_requested()){
managed_recv_buffer::sptr buff = err_xport->get_recv_buff();
if (not buff.get()) continue; //ignore timeout/error buffers