From: Johannes Berg Date: Fri, 15 May 2026 12:09:36 +0000 (+0300) Subject: wifi: iwlwifi: mld: add UHR DUO support X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e9308657a4693849bb1fb6bd1f8fc1de7cac327f;p=thirdparty%2Fkernel%2Flinux.git wifi: iwlwifi: mld: add UHR DUO support The firmware needs to know whether or not DUO (assisting) is supported by the AP, and we should claim DUO support ourselves. Implement this. Signed-off-by: Johannes Berg Reviewed-by: Emmanuel Grumbach Link: https://patch.msgid.link/20260515150751.c006eda0139a.I2b1b540c256d29b3b6af21f7eacbe1f549734e9f@changeid Signed-off-by: Miri Korenblit --- diff --git a/drivers/net/wireless/intel/iwlwifi/fw/api/mac-cfg.h b/drivers/net/wireless/intel/iwlwifi/fw/api/mac-cfg.h index 09f869b5be0cc..dd69687a4e481 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/api/mac-cfg.h +++ b/drivers/net/wireless/intel/iwlwifi/fw/api/mac-cfg.h @@ -556,6 +556,7 @@ enum iwl_link_ctx_protection_flags { * of threshold * @LINK_FLG_NPCA: NPCA enabled * @LINK_FLG_DPS: AP is a DPS assisting AP + * @LINK_FLG_DUO: AP supports UHR DUO */ enum iwl_link_ctx_flags { LINK_FLG_BSS_COLOR_DIS = BIT(0), @@ -564,6 +565,7 @@ enum iwl_link_ctx_flags { LINK_FLG_NDP_FEEDBACK_ENABLED = BIT(3), LINK_FLG_NPCA = BIT(4), LINK_FLG_DPS = BIT(6), + LINK_FLG_DUO = BIT(8), }; /* LINK_CONTEXT_FLAG_E_VER_1 */ /** diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c index f29de029c7091..7027bca249a03 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c +++ b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c @@ -698,6 +698,7 @@ static const struct ieee80211_sband_iftype_data iwl_iftype_cap[] = { .mac.mac_cap = { [0] = IEEE80211_UHR_MAC_CAP0_NPCA_SUPP | IEEE80211_UHR_MAC_CAP0_DPS_SUPP, + [1] = IEEE80211_UHR_MAC_CAP1_DUO_SUPP, }, }, }, diff --git a/drivers/net/wireless/intel/iwlwifi/mld/link.c b/drivers/net/wireless/intel/iwlwifi/mld/link.c index 3c1825ba2b86d..4ac2740dd8a19 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/link.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/link.c @@ -347,6 +347,11 @@ iwl_mld_change_link_in_fw(struct iwl_mld *mld, struct ieee80211_bss_conf *link, link_sta->uhr_cap.mac.mac_cap[0] & IEEE80211_UHR_MAC_CAP0_DPS_ASSIST_SUPP) flags |= LINK_FLG_DPS; + + if (link_sta->uhr_cap.has_uhr && + link_sta->uhr_cap.mac.mac_cap[1] & + IEEE80211_UHR_MAC_CAP1_DUO_SUPP) + flags |= LINK_FLG_DUO; } cmd.htc_trig_based_pkt_ext = link->htc_trig_based_pkt_ext;