]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: iwlwifi: mld: restrict puncturing disable to FM
authorJohannes Berg <johannes.berg@intel.com>
Thu, 10 Jul 2025 18:28:22 +0000 (21:28 +0300)
committerMiri Korenblit <miriam.rachel.korenblit@intel.com>
Fri, 11 Jul 2025 15:28:30 +0000 (18:28 +0300)
Later RFs will always do puncturing, regardless of BIOS
configuration, and earlier RFs aren't supported in MLD.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250710212632.6fa9c44964c1.I46a4cd744a769ec2ac3c8f9a04882140449394b8@changeid
drivers/net/wireless/intel/iwlwifi/mld/mcc.c

index 19cb562e7a73fb3bd413a95427e5d6f67fa5e58e..680abda95adbb7cb569698dacb5dc7df44e2a8ac 100644 (file)
@@ -177,11 +177,15 @@ iwl_mld_get_regdomain(struct iwl_mld *mld,
 
        mld->mcc_src = resp->source_id;
 
-       if (!iwl_puncturing_is_allowed_in_bios(mld->bios_enable_puncturing,
-                                              le16_to_cpu(resp->mcc)))
-               ieee80211_hw_set(mld->hw, DISALLOW_PUNCTURING);
-       else
-               __clear_bit(IEEE80211_HW_DISALLOW_PUNCTURING, mld->hw->flags);
+       /* FM is the earliest supported and later always do puncturing */
+       if (CSR_HW_RFID_TYPE(mld->trans->info.hw_rf_id) == IWL_CFG_RF_TYPE_FM) {
+               if (!iwl_puncturing_is_allowed_in_bios(mld->bios_enable_puncturing,
+                                                      le16_to_cpu(resp->mcc)))
+                       ieee80211_hw_set(mld->hw, DISALLOW_PUNCTURING);
+               else
+                       __clear_bit(IEEE80211_HW_DISALLOW_PUNCTURING,
+                                   mld->hw->flags);
+       }
 
 out:
        kfree(resp);