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>
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user