From 34e12fb56f18f26b09997504fd2facf16e5b4060 Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Wed, 16 Jan 2019 15:09:52 -0800 Subject: rfnoc: Fix detection of outstanding acks by ctrl_iface There was a bug where the number of outstanding ACKS in RFNoC's ctrl_iface was derived from the number of recv frames, which was wrong. A number that was too low would effectively break timed commands on tune, which would, e.g., affect phase alignment. --- host/lib/rfnoc/ctrl_iface.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'host/lib') diff --git a/host/lib/rfnoc/ctrl_iface.cpp b/host/lib/rfnoc/ctrl_iface.cpp index 0b71aebbb..6204d81f4 100644 --- a/host/lib/rfnoc/ctrl_iface.cpp +++ b/host/lib/rfnoc/ctrl_iface.cpp @@ -25,7 +25,7 @@ using namespace uhd; using namespace uhd::rfnoc; using namespace uhd::transport; -static const double ACK_TIMEOUT = 2.0; // supposed to be worst case practical timeout +static const double ACK_TIMEOUT = 2.0; // supposed to be worst case practical timeout static const double MASSIVE_TIMEOUT = 10.0; // for when we wait on a timed command template class ctrl_iface_impl : public ctrl_iface @@ -35,9 +35,8 @@ public: : _xports(xports) , _name(name) , _seq_out(0) - , _max_outstanding_acks(std::min( - uhd::rfnoc::CMD_FIFO_SIZE / 3, // Max command packet size is 3 lines - _xports.recv->get_num_recv_frames())) + , _max_outstanding_acks( + uhd::rfnoc::CMD_FIFO_SIZE / 3) // Max command packet size is 3 lines { UHD_ASSERT_THROW(bool(_xports.send)); UHD_ASSERT_THROW(bool(_xports.recv)); -- cgit v1.2.3