aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael West <michael.west@ettus.com>2019-01-07 14:31:58 -0800
committerMichael West <michael.west@ettus.com>2019-01-07 14:46:44 -0800
commit83907678d8ce65728aab03383ead30fedd9b904d (patch)
treeb93ee0226148d01fae89ab41e25756ced06f22c7
parentTwinRX: Fix tuning (diff)
downloaduhd-83907678d8ce65728aab03383ead30fedd9b904d.tar.xz
uhd-83907678d8ce65728aab03383ead30fedd9b904d.zip
UHD: Add wait for flush in DMA FIFO destructor
Prevents failure to ACK on ctrl_iface. When running back-to-back, the initialization of the DMA FIFO can issue a clear while the previous data is still being flushed, which can cause a truncated packet that can end up locking up the chain and cause failure to ACK control packets.
-rw-r--r--host/lib/usrp/cores/dma_fifo_core_3000.cpp3
1 files changed, 1 insertions, 2 deletions
diff --git a/host/lib/usrp/cores/dma_fifo_core_3000.cpp b/host/lib/usrp/cores/dma_fifo_core_3000.cpp
index db36a336b..14019fa4c 100644
--- a/host/lib/usrp/cores/dma_fifo_core_3000.cpp
+++ b/host/lib/usrp/cores/dma_fifo_core_3000.cpp
@@ -244,8 +244,7 @@ public:
}
virtual ~dma_fifo_core_3000_impl() {
- //Clear the FIFO and hold it in that state
- _fifo_ctrl_reg.write(fifo_ctrl_reg_t::FLUSH_PKTS, 1);
+ flush();
}
virtual bool flush(uint32_t timeout_ms = 2000) {