wifi: iwlwifi: Unify TAS block list handling in regulatory.c
authorAnjaneyulu <pagadala.yesu.anjaneyulu@intel.com>
Wed, 5 Feb 2025 12:55:34 +0000 (14:55 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 11 Feb 2025 10:59:46 +0000 (11:59 +0100)
Created a common function iwl_add_mcc_to_tas_block_list() to handle the
operations previously performed by iwl_mld_add_to_tas_block_list() and
iwl_mvm_add_to_tas_block_list(). moved this new function to regulatory.c
to better reflect its purpose and improve code organization.

Signed-off-by: Anjaneyulu <pagadala.yesu.anjaneyulu@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250205145347.157d26fb7f02.I87e20e967835bc895be390daf1c6637e20b52aae@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/regulatory.c
drivers/net/wireless/intel/iwlwifi/fw/regulatory.h
drivers/net/wireless/intel/iwlwifi/mvm/fw.c

index 63320689e05d8c723698ed3802466ae868b77b09..11f54339acc65e8ca685e52d846dbf38d479d2dd 100644 (file)
@@ -456,6 +456,24 @@ iwl_parse_tas_selection(const u32 tas_selection_in, const u8 tbl_rev)
 }
 IWL_EXPORT_SYMBOL(iwl_parse_tas_selection);
 
+bool iwl_add_mcc_to_tas_block_list(u16 *list, u8 *size, u16 mcc)
+{
+       for (int i = 0; i < *size; i++) {
+               if (list[i] == mcc)
+                       return true;
+       }
+
+       /* Verify that there is room for another country
+        * If *size == IWL_WTAS_BLACK_LIST_MAX, then the table is full.
+        */
+       if (*size >= IWL_WTAS_BLACK_LIST_MAX)
+               return false;
+
+       list[*size++] = mcc;
+       return true;
+}
+IWL_EXPORT_SYMBOL(iwl_add_mcc_to_tas_block_list);
+
 static __le32 iwl_get_lari_config_bitmap(struct iwl_fw_runtime *fwrt)
 {
        int ret;
index ed61bc35ef5ba83b00760b8b09d7fa9ee1aa9ba8..d978a4fadfae61921da59bc2718190ca89dc6678 100644 (file)
@@ -192,6 +192,7 @@ int iwl_fill_ppag_table(struct iwl_fw_runtime *fwrt,
 bool iwl_is_ppag_approved(struct iwl_fw_runtime *fwrt);
 
 bool iwl_is_tas_approved(void);
+bool iwl_add_mcc_to_tas_block_list(u16 *list, u8 *size, u16 mcc);
 
 struct iwl_tas_selection_data
 iwl_parse_tas_selection(const u32 tas_selection, const u8 tbl_rev);
index 5a9ce7dba7149d77dcf84fdb921c0ff80b5cd345..822244b87df3eaf81daeae84d3015b8a7fdb47a6 100644 (file)
@@ -1094,22 +1094,6 @@ static int iwl_mvm_ppag_init(struct iwl_mvm *mvm)
        return iwl_mvm_ppag_send_cmd(mvm);
 }
 
-static bool
-iwl_mvm_add_to_tas_block_list(u16 *list, u8 *size, u16 mcc)
-{
-       /* Verify that there is room for another country */
-       if (*size >= IWL_WTAS_BLACK_LIST_MAX)
-               return false;
-
-       for (u8 i = 0; i < *size; i++) {
-               if (list[i] == mcc)
-                       return true;
-       }
-
-       list[*size++] = mcc;
-       return true;
-}
-
 static void iwl_mvm_tas_init(struct iwl_mvm *mvm)
 {
        u32 cmd_id = WIDE_ID(REGULATORY_AND_NVM_GROUP, TAS_CONFIG);
@@ -1150,10 +1134,10 @@ static void iwl_mvm_tas_init(struct iwl_mvm *mvm)
                IWL_DEBUG_RADIO(mvm,
                                "System vendor '%s' is not in the approved list, disabling TAS in US and Canada.\n",
                                dmi_get_system_info(DMI_SYS_VENDOR) ?: "<unknown>");
-               if ((!iwl_mvm_add_to_tas_block_list(data.block_list_array,
+               if ((!iwl_add_mcc_to_tas_block_list(data.block_list_array,
                                                    &data.block_list_size,
                                                    IWL_MCC_US)) ||
-                   (!iwl_mvm_add_to_tas_block_list(data.block_list_array,
+                   (!iwl_add_mcc_to_tas_block_list(data.block_list_array,
                                                    &data.block_list_size,
                                                    IWL_MCC_CANADA))) {
                        IWL_DEBUG_RADIO(mvm,