diff options
author | Mika Westerberg <mika.westerberg@linux.intel.com> | 2023-09-03 08:25:39 +0300 |
---|---|---|
committer | Mika Westerberg <mika.westerberg@linux.intel.com> | 2023-10-20 18:18:01 +0300 |
commit | 956c3abe72fb6a651b8cf77c28462f7e5b6a48b1 (patch) | |
tree | 5bd44625324fb55c992a4dffa6d79f6e2df71077 /drivers/thunderbolt | |
parent | 2bfeca73e94567c1a117ca45d2e8a25d63e5bd2c (diff) | |
download | linux-stable-956c3abe72fb6a651b8cf77c28462f7e5b6a48b1.tar.gz linux-stable-956c3abe72fb6a651b8cf77c28462f7e5b6a48b1.tar.bz2 linux-stable-956c3abe72fb6a651b8cf77c28462f7e5b6a48b1.zip |
thunderbolt: Introduce tb_for_each_upstream_port_on_path()
This is useful when walking over upstream lane adapters over given path.
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Diffstat (limited to 'drivers/thunderbolt')
-rw-r--r-- | drivers/thunderbolt/tb.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/thunderbolt/tb.h b/drivers/thunderbolt/tb.h index 6d49510eea09..869ac360e1b5 100644 --- a/drivers/thunderbolt/tb.h +++ b/drivers/thunderbolt/tb.h @@ -1073,6 +1073,21 @@ static inline bool tb_port_use_credit_allocation(const struct tb_port *port) for ((p) = tb_next_port_on_path((src), (dst), NULL); (p); \ (p) = tb_next_port_on_path((src), (dst), (p))) +/** + * tb_for_each_upstream_port_on_path() - Iterate over each upstreamm port on path + * @src: Source port + * @dst: Destination port + * @p: Port used as iterator + * + * Walks over each upstream lane adapter on path from @src to @dst. + */ +#define tb_for_each_upstream_port_on_path(src, dst, p) \ + for ((p) = tb_next_port_on_path((src), (dst), NULL); (p); \ + (p) = tb_next_port_on_path((src), (dst), (p))) \ + if (!tb_port_is_null((p)) || !tb_is_upstream_port((p))) {\ + continue; \ + } else + int tb_port_get_link_speed(struct tb_port *port); int tb_port_get_link_generation(struct tb_port *port); int tb_port_get_link_width(struct tb_port *port); |