aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/multi_usrp_rfnoc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'host/lib/usrp/multi_usrp_rfnoc.cpp')
-rw-r--r--host/lib/usrp/multi_usrp_rfnoc.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/host/lib/usrp/multi_usrp_rfnoc.cpp b/host/lib/usrp/multi_usrp_rfnoc.cpp
index 0c716c0a3..f81253997 100644
--- a/host/lib/usrp/multi_usrp_rfnoc.cpp
+++ b/host/lib/usrp/multi_usrp_rfnoc.cpp
@@ -214,6 +214,20 @@ public:
}
}
}
+ // Manually propagate radio block sample rates to DDC/DUC blocks in order to allow
+ // DDC/DUC blocks to have valid internal state before graph is (later) connected
+ for (size_t rx_chan = 0; rx_chan < get_rx_num_channels(); ++rx_chan) {
+ auto& rx_chain = _get_rx_chan(rx_chan);
+ if (rx_chain.ddc) {
+ rx_chain.ddc->set_input_rate(rx_chain.radio->get_rate(), rx_chain.block_chan);
+ }
+ }
+ for (size_t tx_chan = 0; tx_chan < get_tx_num_channels(); ++tx_chan) {
+ auto& tx_chain = _get_tx_chan(tx_chan);
+ if (tx_chain.duc) {
+ tx_chain.duc->set_output_rate(tx_chain.radio->get_rate(), tx_chain.block_chan);
+ }
+ }
_graph->commit();
}