diff options
Diffstat (limited to 'host/lib/usrp')
| -rw-r--r-- | host/lib/usrp/b100/io_impl.cpp | 2 | ||||
| -rw-r--r-- | host/lib/usrp/cores/rx_dsp_core_200.cpp | 2 | ||||
| -rw-r--r-- | host/lib/usrp/e100/io_impl.cpp | 2 | ||||
| -rw-r--r-- | host/lib/usrp/usrp1/soft_time_ctrl.cpp | 4 | ||||
| -rw-r--r-- | host/lib/usrp/usrp2/io_impl.cpp | 3 | ||||
| -rw-r--r-- | host/lib/usrp/usrp2/usrp2_iface.cpp | 13 | 
6 files changed, 15 insertions, 11 deletions
diff --git a/host/lib/usrp/b100/io_impl.cpp b/host/lib/usrp/b100/io_impl.cpp index bd60e75cf..d7effcac1 100644 --- a/host/lib/usrp/b100/io_impl.cpp +++ b/host/lib/usrp/b100/io_impl.cpp @@ -41,7 +41,7 @@ using namespace uhd::transport;   **********************************************************************/  struct b100_impl::io_impl{      io_impl(void): -        async_msg_fifo(100/*messages deep*/) +        async_msg_fifo(1000/*messages deep*/)      { /* NOP */ }      zero_copy_if::sptr data_transport; diff --git a/host/lib/usrp/cores/rx_dsp_core_200.cpp b/host/lib/usrp/cores/rx_dsp_core_200.cpp index ea0384dbe..cebf92f6a 100644 --- a/host/lib/usrp/cores/rx_dsp_core_200.cpp +++ b/host/lib/usrp/cores/rx_dsp_core_200.cpp @@ -121,7 +121,7 @@ public:          //issue the stream command          _iface->poke32(REG_RX_CTRL_STREAM_CMD, cmd_word); -        const boost::uint64_t ticks = stream_cmd.time_spec.to_ticks(_tick_rate); +        const boost::uint64_t ticks = (stream_cmd.stream_now)? 0 : stream_cmd.time_spec.to_ticks(_tick_rate);          _iface->poke32(REG_RX_CTRL_TIME_HI, boost::uint32_t(ticks >> 32));          _iface->poke32(REG_RX_CTRL_TIME_LO, boost::uint32_t(ticks >> 0)); //latches the command      } diff --git a/host/lib/usrp/e100/io_impl.cpp b/host/lib/usrp/e100/io_impl.cpp index f8e15f3fd..b090e45c7 100644 --- a/host/lib/usrp/e100/io_impl.cpp +++ b/host/lib/usrp/e100/io_impl.cpp @@ -50,7 +50,7 @@ using namespace uhd::transport;   **********************************************************************/  struct e100_impl::io_impl{      io_impl(void): -        false_alarm(0), async_msg_fifo(100/*messages deep*/) +        false_alarm(0), async_msg_fifo(1000/*messages deep*/)      { /* NOP */ }      double tick_rate; //set by update tick rate method diff --git a/host/lib/usrp/usrp1/soft_time_ctrl.cpp b/host/lib/usrp/usrp1/soft_time_ctrl.cpp index b8af8af06..90b3a92da 100644 --- a/host/lib/usrp/usrp1/soft_time_ctrl.cpp +++ b/host/lib/usrp/usrp1/soft_time_ctrl.cpp @@ -39,8 +39,8 @@ public:          _nsamps_remaining(0),          _stream_mode(stream_cmd_t::STREAM_MODE_STOP_CONTINUOUS),          _cmd_queue(2), -        _async_msg_queue(100), -        _inline_msg_queue(100), +        _async_msg_queue(1000), +        _inline_msg_queue(1000),          _stream_on_off(stream_on_off)      {          //synchronously spawn a new thread diff --git a/host/lib/usrp/usrp2/io_impl.cpp b/host/lib/usrp/usrp2/io_impl.cpp index f0c159f16..221b747cb 100644 --- a/host/lib/usrp/usrp2/io_impl.cpp +++ b/host/lib/usrp/usrp2/io_impl.cpp @@ -135,7 +135,8 @@ private:  struct usrp2_impl::io_impl{      io_impl(void): -        async_msg_fifo(100/*messages deep*/) +        async_msg_fifo(1000/*messages deep*/), +        tick_rate(1 /*non-zero default*/)      {          /* NOP */      } diff --git a/host/lib/usrp/usrp2/usrp2_iface.cpp b/host/lib/usrp/usrp2/usrp2_iface.cpp index f3d474a2d..eeba6756e 100644 --- a/host/lib/usrp/usrp2/usrp2_iface.cpp +++ b/host/lib/usrp/usrp2/usrp2_iface.cpp @@ -87,7 +87,7 @@ public:          //Obtain the firmware's compat number.          //Save the response compat number for communication.          //TODO can choose to reject certain older compat numbers -        usrp2_ctrl_data_t ctrl_data; +        usrp2_ctrl_data_t ctrl_data = usrp2_ctrl_data_t();          ctrl_data.id = htonl(USRP2_CTRL_ID_WAZZUP_BRO);          ctrl_data = ctrl_send_and_recv(ctrl_data, 0, ~0);          if (ntohl(ctrl_data.id) != USRP2_CTRL_ID_WAZZUP_DUDE) @@ -126,10 +126,9 @@ public:      bool is_device_locked(void){          boost::uint32_t lock_secs = this->get_reg<boost::uint32_t, USRP2_REG_ACTION_FW_PEEK32>(U2_FW_REG_LOCK_TIME);          boost::uint32_t lock_gpid = this->get_reg<boost::uint32_t, USRP2_REG_ACTION_FW_PEEK32>(U2_FW_REG_LOCK_GPID); -        boost::uint32_t curr_secs = this->peek32(U2_REG_TIME64_LO_RB_IMM)/100e6;          //if the difference is larger, assume not locked anymore -        if (curr_secs - lock_secs >= 3) return false; +        if (this->get_curr_secs() - lock_secs >= 3) return false;          //otherwise only lock if the device hash is different that ours          return lock_gpid != boost::uint32_t(get_gpid()); @@ -137,12 +136,16 @@ public:      void lock_task(void){          //re-lock in task -        boost::uint32_t curr_secs = this->peek32(U2_REG_TIME64_LO_RB_IMM)/100e6; -        this->get_reg<boost::uint32_t, USRP2_REG_ACTION_FW_POKE32>(U2_FW_REG_LOCK_TIME, curr_secs); +        this->get_reg<boost::uint32_t, USRP2_REG_ACTION_FW_POKE32>(U2_FW_REG_LOCK_TIME, this->get_curr_secs());          //sleep for a bit          boost::this_thread::sleep(boost::posix_time::milliseconds(1500));      } +    boost::uint32_t get_curr_secs(void){ +        //may not be the right tick rate, but this is ok for locking purposes +        return boost::uint32_t(this->peek32(U2_REG_TIME64_LO_RB_IMM)/100e6); +    } +  /***********************************************************************   * Peek and Poke   **********************************************************************/  | 
