diff options
author | Wade Fife <wade.fife@ettus.com> | 2020-12-16 15:48:13 -0600 |
---|---|---|
committer | michael-west <michael.west@ettus.com> | 2020-12-21 09:35:31 -0800 |
commit | 3a73923309f66b05f05528534ab82e02150482ca (patch) | |
tree | be9e241c307245bd69756f39760d31ff14d1fd89 /host/lib | |
parent | 0b33d3a4b7c27a69f5943d595a8f312bd1750379 (diff) | |
download | uhd-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.cpp | 18 |
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); |