aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib
diff options
context:
space:
mode:
authorWade Fife <wade.fife@ettus.com>2020-12-16 15:48:13 -0600
committermichael-west <michael.west@ettus.com>2020-12-21 09:35:31 -0800
commit3a73923309f66b05f05528534ab82e02150482ca (patch)
treebe9e241c307245bd69756f39760d31ff14d1fd89 /host/lib
parent0b33d3a4b7c27a69f5943d595a8f312bd1750379 (diff)
downloaduhd-3a73923309f66b05f05528534ab82e02150482ca.tar.gz
uhd-3a73923309f66b05f05528534ab82e02150482ca.tar.bz2
uhd-3a73923309f66b05f05528534ab82e02150482ca.zip
rfnoc: Fix remote stream buffer format
When configuring remote streams, we were setting the format at the source stream endpoint, but not at the destination stream endpoint. Therefore, the destination used the default or whatever it was set to during a previous run. This change sets the format at the destination stream to match the format of the source stream.
Diffstat (limited to 'host/lib')
-rw-r--r--host/lib/rfnoc/mgmt_portal.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/host/lib/rfnoc/mgmt_portal.cpp b/host/lib/rfnoc/mgmt_portal.cpp
index a54efaaf7..7b09c540b 100644
--- a/host/lib/rfnoc/mgmt_portal.cpp
+++ b/host/lib/rfnoc/mgmt_portal.cpp
@@ -617,6 +617,24 @@ public:
_send_recv_mgmt_transaction(xport, cfg_xact);
}
+ // Build a management transaction to configure the destination node
+ {
+ mgmt_payload cfg_xact;
+ cfg_xact.set_header(my_epid, _protover, _chdr_w);
+ _traverse_to_node(cfg_xact, dst_node_addr);
+ mgmt_hop_t cfg_hop;
+ // Configure buffer types
+ cfg_hop.add_op(mgmt_op_t(mgmt_op_t::MGMT_OP_CFG_WR_REQ,
+ mgmt_op_t::cfg_payload(REG_ISTRM_CTRL_STATUS,
+ BUILD_CTRL_STATUS_WORD(false, false, BUFF_U64, BUFF_U64, false))));
+ // Return the packet back to us
+ cfg_hop.add_op(mgmt_op_t(mgmt_op_t::MGMT_OP_RETURN));
+ // Send the transaction and receive a response.
+ // We don't care about the contents of the response.
+ cfg_xact.add_hop(cfg_hop);
+ _send_recv_mgmt_transaction(xport, cfg_xact);
+ }
+
// Wait for stream configuration to finish on the HW side
_validate_stream_setup(xport, src_node_addr, timeout);