Lines Matching full:vif

22 static inline bool iwl_mld_emlsr_active(struct ieee80211_vif *vif)  in iwl_mld_emlsr_active()  argument
25 return !!(vif->driver_flags & IEEE80211_VIF_EML_ACTIVE); in iwl_mld_emlsr_active()
28 static inline bool iwl_mld_vif_has_emlsr_cap(struct ieee80211_vif *vif) in iwl_mld_vif_has_emlsr_cap() argument
30 struct iwl_mld_vif *mld_vif = iwl_mld_vif_from_mac80211(vif); in iwl_mld_vif_has_emlsr_cap()
37 return ieee80211_vif_type_p2p(vif) == NL80211_IFTYPE_STATION && in iwl_mld_vif_has_emlsr_cap()
38 ieee80211_vif_is_mld(vif) && in iwl_mld_vif_has_emlsr_cap()
39 vif->cfg.eml_cap & IEEE80211_EML_CAP_EMLSR_SUPP && in iwl_mld_vif_has_emlsr_cap()
44 iwl_mld_max_active_links(struct iwl_mld *mld, struct ieee80211_vif *vif) in iwl_mld_max_active_links() argument
46 if (vif->type == NL80211_IFTYPE_AP) in iwl_mld_max_active_links()
49 if (ieee80211_vif_type_p2p(vif) == NL80211_IFTYPE_STATION) in iwl_mld_max_active_links()
57 iwl_mld_count_active_links(struct iwl_mld *mld, struct ieee80211_vif *vif) in iwl_mld_count_active_links() argument
59 struct iwl_mld_vif *mld_vif = iwl_mld_vif_from_mac80211(vif); in iwl_mld_count_active_links()
71 static inline u8 iwl_mld_get_primary_link(struct ieee80211_vif *vif) in iwl_mld_get_primary_link() argument
73 struct iwl_mld_vif *mld_vif = iwl_mld_vif_from_mac80211(vif); in iwl_mld_get_primary_link()
77 if (!ieee80211_vif_is_mld(vif) || WARN_ON(!vif->active_links)) in iwl_mld_get_primary_link()
81 if (vif->type == NL80211_IFTYPE_AP) in iwl_mld_get_primary_link()
82 return __ffs(vif->active_links); in iwl_mld_get_primary_link()
84 if (iwl_mld_emlsr_active(vif) && in iwl_mld_get_primary_link()
85 !WARN_ON(!(BIT(mld_vif->emlsr.primary) & vif->active_links))) in iwl_mld_get_primary_link()
88 return __ffs(vif->active_links); in iwl_mld_get_primary_link()
95 static inline u8 iwl_mld_get_other_link(struct ieee80211_vif *vif, u8 link_id) in iwl_mld_get_other_link() argument
97 switch (hweight16(vif->active_links)) { in iwl_mld_get_other_link()
104 return __ffs(vif->active_links); in iwl_mld_get_other_link()
106 return __ffs(vif->active_links & ~BIT(link_id)); in iwl_mld_get_other_link()
115 void iwl_mld_block_emlsr(struct iwl_mld *mld, struct ieee80211_vif *vif,
117 int iwl_mld_block_emlsr_sync(struct iwl_mld *mld, struct ieee80211_vif *vif,
119 void iwl_mld_unblock_emlsr(struct iwl_mld *mld, struct ieee80211_vif *vif,
121 void iwl_mld_exit_emlsr(struct iwl_mld *mld, struct ieee80211_vif *vif,
146 * @vif: VIF to retry EMLSR on
148 * Retry entering EMLSR on the given VIF.
151 void iwl_mld_retry_emlsr(struct iwl_mld *mld, struct ieee80211_vif *vif);
163 u32 iwl_mld_emlsr_pair_state(struct ieee80211_vif *vif,