aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAshish Chaudhari <ashish@ettus.com>2014-04-28 15:22:47 -0700
committerAshish Chaudhari <ashish@ettus.com>2014-04-28 15:22:47 -0700
commit7fad62620d75a56f35fb12d3a74ca5b157e01514 (patch)
tree4ad5ed683d3c12a648a78b90e40eef4918506263
parent623f5295d8297794d85894ed174221b6d18e75c0 (diff)
downloaduhd-7fad62620d75a56f35fb12d3a74ca5b157e01514.tar.gz
uhd-7fad62620d75a56f35fb12d3a74ca5b157e01514.tar.bz2
uhd-7fad62620d75a56f35fb12d3a74ca5b157e01514.zip
x300: Fixed DMA busy logic after review feedback.
-rw-r--r--host/lib/transport/nirio/niusrprio_session.cpp2
-rw-r--r--host/lib/transport/nirio_zero_copy.cpp2
2 files changed, 2 insertions, 2 deletions
diff --git a/host/lib/transport/nirio/niusrprio_session.cpp b/host/lib/transport/nirio/niusrprio_session.cpp
index 3afe61eae..97d764736 100644
--- a/host/lib/transport/nirio/niusrprio_session.cpp
+++ b/host/lib/transport/nirio/niusrprio_session.cpp
@@ -214,7 +214,7 @@ nirio_status niusrprio_session::_ensure_fpga_ready()
boost::uint32_t reg_data = 0xffffffff;
nirio_status_chain(_riok_proxy.peek(FPGA_STATUS_REG, reg_data), status);
- if (reg_data & FPGA_STATUS_DMA_ACTIVE_MASK)
+ if (nirio_status_not_fatal(status) && (reg_data & FPGA_STATUS_DMA_ACTIVE_MASK))
{
//In case this session was re-initialized *immediately* after the previous
//there is a small chance that the server is still finishing up cleaning up
diff --git a/host/lib/transport/nirio_zero_copy.cpp b/host/lib/transport/nirio_zero_copy.cpp
index a739c01f1..3bb822720 100644
--- a/host/lib/transport/nirio_zero_copy.cpp
+++ b/host/lib/transport/nirio_zero_copy.cpp
@@ -304,7 +304,7 @@ private:
PCIE_RX_DMA_REG(DMA_CTRL_STATUS_REG, _fifo_instance), reg_data), status);
rx_busy = (reg_data & DMA_STATUS_BUSY);
- if (nirio_status_not_fatal(status) && !tx_busy && !rx_busy) {
+ if (nirio_status_not_fatal(status) && (tx_busy || rx_busy)) {
start_time = boost::posix_time::microsec_clock::local_time();
do {
boost::this_thread::sleep(boost::posix_time::microsec(50)); //Avoid flooding the bus