Lines Matching refs:cap
21 static bool tb_cap_is_basic(struct tb_cap_any *cap) in tb_cap_is_basic() argument
24 return cap->basic.cap != 5; in tb_cap_is_basic()
27 static bool tb_cap_is_long(struct tb_cap_any *cap) in tb_cap_is_long() argument
29 return !tb_cap_is_basic(cap) in tb_cap_is_long()
30 && cap->extended_short.next == 0 in tb_cap_is_long()
31 && cap->extended_short.length == 0; in tb_cap_is_long()
34 static enum tb_cap tb_cap(struct tb_cap_any *cap) in tb_cap() argument
36 if (tb_cap_is_basic(cap)) in tb_cap()
37 return cap->basic.cap; in tb_cap()
40 return cap->extended_short.cap; in tb_cap()
43 static u32 tb_cap_next(struct tb_cap_any *cap, u32 offset) in tb_cap_next() argument
51 next = cap->basic.next; in tb_cap_next()
58 if (tb_cap_is_basic(cap)) in tb_cap_next()
59 next = cap->basic.next; in tb_cap_next()
60 else if (!tb_cap_is_long(cap)) in tb_cap_next()
61 next = cap->extended_short.next; in tb_cap_next()
63 next = cap->extended_long.next; in tb_cap_next()
80 int tb_find_cap(struct tb_port *port, enum tb_cfg_space space, enum tb_cap cap) in tb_find_cap() argument
98 if (tb_cap(&header) == cap) in tb_find_cap()
114 cap, space, offset); in tb_find_cap()