diff options
author | Michael West <michael.west@ettus.com> | 2019-01-07 14:31:58 -0800 |
---|---|---|
committer | Michael West <michael.west@ettus.com> | 2019-01-07 14:46:44 -0800 |
commit | 83907678d8ce65728aab03383ead30fedd9b904d (patch) | |
tree | b93ee0226148d01fae89ab41e25756ced06f22c7 | |
parent | TwinRX: Fix tuning (diff) | |
download | uhd-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.cpp | 3 |
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) { |