summaryrefslogtreecommitdiffstats
path: root/host
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2011-02-08 12:28:51 -0800
committerJosh Blum <josh@joshknows.com>2011-02-08 12:28:51 -0800
commit7d277bc30f0b506d5773250bf7ee59ccaa59d832 (patch)
tree487549b7de948cbfa82c8c14ba4b5eddd27d47ee /host
parentaea6ac1b6a96d03fc6ccca49ab535b4e93e86a00 (diff)
downloaduhd-7d277bc30f0b506d5773250bf7ee59ccaa59d832.tar.gz
uhd-7d277bc30f0b506d5773250bf7ee59ccaa59d832.tar.bz2
uhd-7d277bc30f0b506d5773250bf7ee59ccaa59d832.zip
usrp2: fix for lingering packet problem
Diffstat (limited to 'host')
-rw-r--r--host/lib/usrp/usrp2/mboard_impl.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/host/lib/usrp/usrp2/mboard_impl.cpp b/host/lib/usrp/usrp2/mboard_impl.cpp
index 784f662d9..397fae636 100644
--- a/host/lib/usrp/usrp2/mboard_impl.cpp
+++ b/host/lib/usrp/usrp2/mboard_impl.cpp
@@ -157,6 +157,14 @@ usrp2_mboard_impl::usrp2_mboard_impl(
//set default subdev specs
(*this)[MBOARD_PROP_RX_SUBDEV_SPEC] = subdev_spec_t();
(*this)[MBOARD_PROP_TX_SUBDEV_SPEC] = subdev_spec_t();
+
+ //This is a hack/fix for the lingering packet problem.
+ stream_cmd_t stream_cmd(stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE);
+ stream_cmd.num_samps = 1;
+ this->issue_ddc_stream_cmd(stream_cmd);
+ data_transport->get_recv_buff().get(); //recv with timeout for lingering
+ data_transport->get_recv_buff().get(); //recv with timeout for expected
+ _iface->poke32(_iface->regs.rx_ctrl_clear_overrun, 1); //resets sequence
}
usrp2_mboard_impl::~usrp2_mboard_impl(void){