wifi: iwlwifi: support PPAG in China for older FW cmd version
authorAlon Giladi <alon.giladi@intel.com>
Wed, 24 May 2023 17:42:10 +0000 (20:42 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 6 Jun 2023 11:07:07 +0000 (13:07 +0200)
Allows the China bit in the ppag flags to turn on also when
FW cmd version is 1 (if FW has the capability).

Signed-off-by: Alon Giladi <alon.giladi@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230524203151.3cc19e799eeb.I9054b1d63fd7ae2b5f0e416825b4b1dc9f79cc80@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/acpi.c
drivers/net/wireless/intel/iwlwifi/fw/file.h

index 9dfd249..e6abd16 100644 (file)
@@ -1155,7 +1155,15 @@ int iwl_read_ppag_table(struct iwl_fw_runtime *fwrt, union iwl_ppag_table_cmd *c
                         IWL_DEBUG_RADIO(fwrt,
                                         "PPAG table rev is %d but FW supports v1, sending truncated table\n",
                                         fwrt->ppag_ver);
-                        cmd->v1.flags &= cpu_to_le32(IWL_PPAG_ETSI_MASK);
+                       if (!fw_has_capa(&fwrt->fw->ucode_capa,
+                                        IWL_UCODE_TLV_CAPA_PPAG_CHINA_BIOS_SUPPORT)) {
+                               cmd->v1.flags &= cpu_to_le32(IWL_PPAG_ETSI_MASK);
+                               IWL_DEBUG_RADIO(fwrt,
+                                               "FW doesn't support ppag China bit\n");
+                       } else {
+                               IWL_DEBUG_RADIO(fwrt,
+                                               "FW supports ppag China bit\n");
+                       }
                }
        } else if (cmd_ver >= 2 && cmd_ver <= 4) {
                 num_sub_bands = IWL_NUM_SUB_BANDS_V2;
index cddf09d..ef2ff75 100644 (file)
@@ -462,6 +462,7 @@ enum iwl_ucode_tlv_capa {
        IWL_UCODE_TLV_CAPA_BIGTK_TX_SUPPORT             = (__force iwl_ucode_tlv_capa_t)109,
        IWL_UCODE_TLV_CAPA_MLD_API_SUPPORT              = (__force iwl_ucode_tlv_capa_t)110,
        IWL_UCODE_TLV_CAPA_SCAN_DONT_TOGGLE_ANT         = (__force iwl_ucode_tlv_capa_t)111,
+       IWL_UCODE_TLV_CAPA_PPAG_CHINA_BIOS_SUPPORT      = (__force iwl_ucode_tlv_capa_t)112,
 
 #ifdef __CHECKER__
        /* sparse says it cannot increment the previous enum member */