Lines Matching +full:dual +full:- +full:radio

1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
3 * Copyright (C) 2024-2025 Intel Corporation
11 #include "iwl-config.h"
12 #include "iwl-trans.h"
25 return !!(vif->driver_flags & IEEE80211_VIF_EML_ACTIVE); in iwl_mld_emlsr_active()
33 if (!mld_vif->authorized) in iwl_mld_vif_has_emlsr_cap()
36 /* No EMLSR on dual radio devices */ in iwl_mld_vif_has_emlsr_cap()
39 vif->cfg.eml_cap & IEEE80211_EML_CAP_EMLSR_SUPP && in iwl_mld_vif_has_emlsr_cap()
40 !CSR_HW_RFID_IS_CDB(mld_vif->mld->trans->info.hw_rf_id); in iwl_mld_vif_has_emlsr_cap()
46 if (vif->type == NL80211_IFTYPE_AP) in iwl_mld_max_active_links()
47 return mld->fw->ucode_capa.num_beacons; in iwl_mld_max_active_links()
64 if (rcu_access_pointer(mld_link->chan_ctx)) in iwl_mld_count_active_links()
75 lockdep_assert_wiphy(mld_vif->mld->wiphy); 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()
85 !WARN_ON(!(BIT(mld_vif->emlsr.primary) & vif->active_links))) in iwl_mld_get_primary_link()
86 return mld_vif->emlsr.primary; in iwl_mld_get_primary_link()
88 return __ffs(vif->active_links); in iwl_mld_get_primary_link()
92 * For non-MLO/single link, this will return the deflink/single active link,
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()
144 * iwl_mld_retry_emlsr - Retry entering EMLSR