iwlwifi: mvm: Support SCAN_CFG_CMD version 5
authorIlan Peer <ilan.peer@intel.com>
Wed, 10 Feb 2021 15:15:08 +0000 (17:15 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Wed, 10 Feb 2021 23:52:08 +0000 (01:52 +0200)
Since the firmware support for internal station for auxiliary
activities, there is no need to configure an auxiliary station
as part of SCAN_CFG_CMD. Thus, this configuration was removed
from the corresponding structure.

Align the code accordingly.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20210210171218.9b8da8408692.I7fe99d73cd67ffc817c2ef6af4c9932ce9fc50b2@changeid
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/api/scan.h
drivers/net/wireless/intel/iwlwifi/mvm/scan.c

index 931c0f48de9903a2f2bae7ce06e25ccf3b64f662..6b8ca35cec1ade6a83c169a297db731d4cff96d8 100644 (file)
@@ -542,7 +542,8 @@ struct iwl_scan_config_v2 {
  * struct iwl_scan_config
  * @enable_cam_mode: whether to enable CAM mode.
  * @enable_promiscouos_mode: whether to enable promiscouos mode
- * @bcast_sta_id: the index of the station in the fw
+ * @bcast_sta_id: the index of the station in the fw. Deprecated starting with
+ *     API version 5.
  * @reserved: reserved
  * @tx_chains: valid_tx antenna - ANT_* definitions
  * @rx_chains: valid_rx antenna - ANT_* definitions
@@ -554,7 +555,7 @@ struct iwl_scan_config {
        u8 reserved;
        __le32 tx_chains;
        __le32 rx_chains;
-} __packed; /* SCAN_CONFIG_DB_CMD_API_S_3 */
+} __packed; /* SCAN_CONFIG_DB_CMD_API_S_5 */
 
 /**
  * enum iwl_umac_scan_flags - UMAC scan flags
index 42e790ed8caa617b988178473e91b817f0618573..caf87f320094fabf9f5510ed1101c7db357b8df5 100644 (file)
@@ -1253,14 +1253,16 @@ int iwl_mvm_config_scan(struct iwl_mvm *mvm)
        memset(&cfg, 0, sizeof(cfg));
 
        if (iwl_fw_lookup_cmd_ver(mvm->fw, LONG_GROUP,
-                                 ADD_STA, 0) < 12)
+                                 ADD_STA, 0) < 12) {
                cfg.bcast_sta_id = mvm->aux_sta.sta_id;
-       /*
-        * Fw doesn't use this sta anymore, pending deprecation via HOST API
-        * change.
-        */
-       else
+       } else if (iwl_fw_lookup_cmd_ver(mvm->fw, LONG_GROUP,
+                                        SCAN_CFG_CMD, 0) < 5) {
+               /*
+                * Fw doesn't use this sta anymore. Deprecated on SCAN_CFG_CMD
+                * version 5.
+                */
                cfg.bcast_sta_id = 0xff;
+       }
 
        cfg.tx_chains = cpu_to_le32(iwl_mvm_get_valid_tx_ant(mvm));
        cfg.rx_chains = cpu_to_le32(iwl_mvm_scan_rx_ant(mvm));