]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: iwlwifi: mask reserved bits in chan_state_active_bitmap
authorPagadala Yesu Anjaneyulu <pagadala.yesu.anjaneyulu@intel.com>
Wed, 9 Jul 2025 03:56:39 +0000 (06:56 +0300)
committerMiri Korenblit <miriam.rachel.korenblit@intel.com>
Wed, 9 Jul 2025 04:56:18 +0000 (07:56 +0300)
Mask the reserved bits as firmware will assert if reserved bits are set.

Fixes: ef7ddf4e2f94 ("wifi: iwlwifi: Add support for LARI_CONFIG_CHANGE_CMD v12")
Signed-off-by: Pagadala Yesu Anjaneyulu <pagadala.yesu.anjaneyulu@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250709065608.7a72c70bdc9d.Ic9be0a3fc3aabde0c4b88568f3bb7b76e375f8d4@changeid
drivers/net/wireless/intel/iwlwifi/fw/api/nvm-reg.h
drivers/net/wireless/intel/iwlwifi/fw/regulatory.c
drivers/net/wireless/intel/iwlwifi/mld/regulatory.c

index 5cdc09d465d4fe20a3748ec46fcd4348e97210e2..e90f3187e55c490c1e02598497cb97ed67654fc8 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
 /*
- * Copyright (C) 2012-2014, 2018-2024 Intel Corporation
+ * Copyright (C) 2012-2014, 2018-2025 Intel Corporation
  * Copyright (C) 2013-2015 Intel Mobile Communications GmbH
  * Copyright (C) 2016-2017 Intel Deutschland GmbH
  */
@@ -754,7 +754,7 @@ struct iwl_lari_config_change_cmd_v10 {
  *     according to the BIOS definitions.
  *     For LARI cmd version 11 - bits 0:4 are supported.
  *     For LARI cmd version 12 - bits 0:6 are supported and bits 7:31 are
- *     reserved. No need to mask out the reserved bits.
+ *     reserved.
  * @force_disable_channels_bitmap: Bitmap of disabled bands/channels.
  *     Each bit represents a set of channels in a specific band that should be
  *     disabled
@@ -787,6 +787,7 @@ struct iwl_lari_config_change_cmd {
 /* Activate UNII-1 (5.2GHz) for World Wide */
 #define ACTIVATE_5G2_IN_WW_MASK                        BIT(4)
 #define CHAN_STATE_ACTIVE_BITMAP_CMD_V11       0x1F
+#define CHAN_STATE_ACTIVE_BITMAP_CMD_V12       0x7F
 
 /**
  * struct iwl_pnvm_init_complete_ntfy - PNVM initialization complete
index 74b90bd92c4813b5045806a3110c8b59fd524a61..ebfba981cf893c15cf659a7ecd6f5b66ec858681 100644 (file)
@@ -614,6 +614,7 @@ int iwl_fill_lari_config(struct iwl_fw_runtime *fwrt,
 
        ret = iwl_bios_get_dsm(fwrt, DSM_FUNC_ACTIVATE_CHANNEL, &value);
        if (!ret) {
+               value &= CHAN_STATE_ACTIVE_BITMAP_CMD_V12;
                if (cmd_ver < 8)
                        value &= ~ACTIVATE_5G2_IN_WW_MASK;
 
index 326c300470ea38d30c817244a5404613b8bb06e4..436219d1ec5e04c43ff8a1ac3f33841cc58ad183 100644 (file)
@@ -251,8 +251,10 @@ void iwl_mld_configure_lari(struct iwl_mld *mld)
                        cpu_to_le32(value &= DSM_UNII4_ALLOW_BITMAP);
 
        ret = iwl_bios_get_dsm(fwrt, DSM_FUNC_ACTIVATE_CHANNEL, &value);
-       if (!ret)
+       if (!ret) {
+               value &= CHAN_STATE_ACTIVE_BITMAP_CMD_V12;
                cmd.chan_state_active_bitmap = cpu_to_le32(value);
+       }
 
        ret = iwl_bios_get_dsm(fwrt, DSM_FUNC_ENABLE_6E, &value);
        if (!ret)