diff options
author | Ashish Chaudhari <ashish@ettus.com> | 2014-04-28 15:22:47 -0700 |
---|---|---|
committer | Ashish Chaudhari <ashish@ettus.com> | 2014-04-28 15:22:47 -0700 |
commit | 7fad62620d75a56f35fb12d3a74ca5b157e01514 (patch) | |
tree | 4ad5ed683d3c12a648a78b90e40eef4918506263 | |
parent | 623f5295d8297794d85894ed174221b6d18e75c0 (diff) | |
download | uhd-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.cpp | 2 | ||||
-rw-r--r-- | host/lib/transport/nirio_zero_copy.cpp | 2 |
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 |