wifi: iwlwifi: mvm: fix the sta id in offload
authorShaul Triebitz <shaul.triebitz@intel.com>
Mon, 11 Mar 2024 06:28:06 +0000 (08:28 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 25 Mar 2024 14:36:03 +0000 (15:36 +0100)
With MLO, the station id in wowlan can be other than 0.
Set the correct station in the protocol offload command.

Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240311081938.ace4f793872d.Id984110576a72acc84493217ca95564c3cd362bd@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
drivers/net/wireless/intel/iwlwifi/mvm/offloading.c

index 553c6fffc7c66ddb182f00b75953fff86391c712..10fed7df853c349fe24591e49fa80c2657718e45 100644 (file)
@@ -1152,7 +1152,8 @@ iwl_mvm_wowlan_config(struct iwl_mvm *mvm,
        if (ret)
                return ret;
 
-       return iwl_mvm_send_proto_offload(mvm, vif, false, true, 0);
+       return iwl_mvm_send_proto_offload(mvm, vif, false, true, 0,
+                                         mvm_link->ap_sta_id);
 }
 
 static int
index 8257b7fc26dfe3ab79641a7d19f89642f4db4731..3d56dbfa9635b313a4f50280b077d87173d4c6f0 100644 (file)
@@ -2112,7 +2112,8 @@ int iwl_mvm_send_proto_offload(struct iwl_mvm *mvm,
                               struct ieee80211_vif *vif,
                               bool disable_offloading,
                               bool offload_ns,
-                              u32 cmd_flags);
+                              u32 cmd_flags,
+                              u8 sta_id);
 
 /* BT Coex */
 int iwl_mvm_send_bt_init_conf(struct iwl_mvm *mvm);
index dfb16ca5b4388e38355b4adcd0e63e3d58853b67..1eb21fe861e5fddf53bb72efdec15b5e4f5ab0b8 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
 /*
- * Copyright (C) 2012-2014, 2021-2022 Intel Corporation
+ * Copyright (C) 2012-2014, 2021-2022, 2024 Intel Corporation
  * Copyright (C) 2013-2014 Intel Mobile Communications GmbH
  * Copyright (C) 2015 Intel Deutschland GmbH
  */
@@ -30,7 +30,8 @@ int iwl_mvm_send_proto_offload(struct iwl_mvm *mvm,
                               struct ieee80211_vif *vif,
                               bool disable_offloading,
                               bool offload_ns,
-                              u32 cmd_flags)
+                              u32 cmd_flags,
+                              u8 sta_id)
 {
        union {
                struct iwl_proto_offload_cmd_v1 v1;
@@ -205,6 +206,9 @@ int iwl_mvm_send_proto_offload(struct iwl_mvm *mvm,
        if (!disable_offloading)
                common->enabled = cpu_to_le32(enabled);
 
+       if (ver >= 4)
+               cmd.v4.sta_id = cpu_to_le32(sta_id);
+
        hcmd.len[0] = size;
        return iwl_mvm_send_cmd(mvm, &hcmd);
 }