diff options
author | michael-west <michael.west@ettus.com> | 2019-01-24 19:13:44 -0800 |
---|---|---|
committer | Ashish Chaudhari <ashish.chaudhari@ettus.com> | 2019-01-31 13:47:31 -0800 |
commit | 13663f459d67fb3c0f289bbcbddc4534224381f5 (patch) | |
tree | b73fae267648f1324a1b185c0515df8762a0f3f1 /host/lib/rfnoc | |
parent | bbb3aa78836a31e9df847a228c2f87e9e2a15fad (diff) | |
download | uhd-13663f459d67fb3c0f289bbcbddc4534224381f5.tar.gz uhd-13663f459d67fb3c0f289bbcbddc4534224381f5.tar.bz2 uhd-13663f459d67fb3c0f289bbcbddc4534224381f5.zip |
RFNoC: More graph traversal fixes
- Store number of input and ouptput ports from block definition.
- Use number of input and ouptut ports for graph traversal rather
than number of connected blocks.
- Fixes DAC synchronization failure errors when using only one TX
channel on X300.
Signed-off-by: michael-west <michael.west@ettus.com>
Diffstat (limited to 'host/lib/rfnoc')
-rw-r--r-- | host/lib/rfnoc/block_ctrl_base.cpp | 2 | ||||
-rw-r--r-- | host/lib/rfnoc/source_block_ctrl_base.cpp | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/host/lib/rfnoc/block_ctrl_base.cpp b/host/lib/rfnoc/block_ctrl_base.cpp index ed9ab11d4..4137da9e3 100644 --- a/host/lib/rfnoc/block_ctrl_base.cpp +++ b/host/lib/rfnoc/block_ctrl_base.cpp @@ -125,6 +125,8 @@ block_ctrl_base::block_ctrl_base(const make_args_t& make_args) /*** Init I/O port definitions ******************************************/ _init_port_defs("in", _block_def->get_input_ports()); _init_port_defs("out", _block_def->get_output_ports()); + set_num_input_ports(_block_def->get_input_ports().size()); + set_num_output_ports(_block_def->get_output_ports().size()); // FIXME this warning always fails until the input buffer code above is fixed // if (_tree->list(_root_path / "ports/in").size() != n_valid_input_buffers) { // UHD_LOGGER_WARNING(unique_id()) << diff --git a/host/lib/rfnoc/source_block_ctrl_base.cpp b/host/lib/rfnoc/source_block_ctrl_base.cpp index 4097f3d7b..c3c6faf1f 100644 --- a/host/lib/rfnoc/source_block_ctrl_base.cpp +++ b/host/lib/rfnoc/source_block_ctrl_base.cpp @@ -34,7 +34,7 @@ void source_block_ctrl_base::issue_stream_cmd( // if the number of upstream and downstream connections are the same. // The stream command is limited to only that port to prevent issuing // it on the wrong block and port. - if (_upstream_nodes.size() == _downstream_nodes.size() + if (get_num_input_ports() == get_num_output_ports() and upstream_node.first != chan) { continue; } |