]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: iwlwifi: mld: add UHR DUO support
authorJohannes Berg <johannes.berg@intel.com>
Fri, 15 May 2026 12:09:36 +0000 (15:09 +0300)
committerMiri Korenblit <miriam.rachel.korenblit@intel.com>
Tue, 26 May 2026 12:17:12 +0000 (15:17 +0300)
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 <johannes.berg@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Link: https://patch.msgid.link/20260515150751.c006eda0139a.I2b1b540c256d29b3b6af21f7eacbe1f549734e9f@changeid
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/api/mac-cfg.h
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
drivers/net/wireless/intel/iwlwifi/mld/link.c

index 09f869b5be0cc4d52b840e2d42d8804ed2a9f903..dd69687a4e4816f2b6b25acac0291dc48b7ee16f 100644 (file)
@@ -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 */
 
 /**
index f29de029c70910cdbec7eeffbf886cae2d655be2..7027bca249a039d8e2e4457a866ad21078faa105 100644 (file)
@@ -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,
                        },
                },
        },
index 3c1825ba2b86db005bdd89a3069ca5dbbbc98379..4ac2740dd8a19c8ef4c1a69792d07a4f7769a693 100644 (file)
@@ -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;