Takashi Iwai ac83bf
From 551d793f65364c904921ac168d4b4028bb51be69 Mon Sep 17 00:00:00 2001
Takashi Iwai ac83bf
From: Luca Coelho <luciano.coelho@intel.com>
Takashi Iwai ac83bf
Date: Wed, 10 Feb 2021 13:56:30 +0200
Takashi Iwai ac83bf
Subject: [PATCH] iwlwifi: mvm: store PPAG enabled/disabled flag properly
Takashi Iwai ac83bf
Git-commit: 551d793f65364c904921ac168d4b4028bb51be69
Takashi Iwai ac83bf
Patch-mainline: v5.12-rc1
Takashi Iwai ac83bf
References: bsc#1187495
Takashi Iwai ac83bf
Takashi Iwai ac83bf
When reading the PPAG table from ACPI, we should store everything in
Takashi Iwai ac83bf
our fwrt structure, so it can be accessed later.  But we had a local
Takashi Iwai ac83bf
ppag_table variable in the function and were erroneously storing the
Takashi Iwai ac83bf
enabled/disabled flag in it instead of storing it in the fwrt.  Fix
Takashi Iwai ac83bf
this by removing the local variable and storing everything directly in
Takashi Iwai ac83bf
fwrt.
Takashi Iwai ac83bf
Takashi Iwai ac83bf
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Takashi Iwai ac83bf
Fixes: f2134f66f40e ("iwlwifi: acpi: support ppag table command v2")
Takashi Iwai ac83bf
Link: https://lore.kernel.org/r/iwlwifi.20210210135352.889862e6d393.I8b894c1b2b3fe0ad2fb39bf438273ea47eb5afa4@changeid
Takashi Iwai ac83bf
Acked-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai ac83bf
Takashi Iwai ac83bf
---
Takashi Iwai ac83bf
 drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 7 +++----
Takashi Iwai ac83bf
 1 file changed, 3 insertions(+), 4 deletions(-)
Takashi Iwai ac83bf
Takashi Iwai ac83bf
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
Takashi Iwai ac83bf
index 3bfb80dd17cf..57471ab2f5ef 100644
Takashi Iwai ac83bf
--- a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
Takashi Iwai ac83bf
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
Takashi Iwai ac83bf
@@ -895,7 +895,6 @@ static int iwl_mvm_sar_geo_init(struct iwl_mvm *mvm)
Takashi Iwai ac83bf
 static int iwl_mvm_get_ppag_table(struct iwl_mvm *mvm)
Takashi Iwai ac83bf
 {
Takashi Iwai ac83bf
 	union acpi_object *wifi_pkg, *data, *enabled;
Takashi Iwai ac83bf
-	union iwl_ppag_table_cmd ppag_table;
Takashi Iwai ac83bf
 	int i, j, ret, tbl_rev, num_sub_bands;
Takashi Iwai ac83bf
 	int idx = 2;
Takashi Iwai ac83bf
 	s8 *gain;
Takashi Iwai ac83bf
@@ -949,8 +948,8 @@ static int iwl_mvm_get_ppag_table(struct iwl_mvm *mvm)
Takashi Iwai ac83bf
 		goto out_free;
Takashi Iwai ac83bf
 	}
Takashi Iwai ac83bf
 
Takashi Iwai ac83bf
-	ppag_table.v1.enabled = cpu_to_le32(enabled->integer.value);
Takashi Iwai ac83bf
-	if (!ppag_table.v1.enabled) {
Takashi Iwai ac83bf
+	mvm->fwrt.ppag_table.v1.enabled = cpu_to_le32(enabled->integer.value);
Takashi Iwai ac83bf
+	if (!mvm->fwrt.ppag_table.v1.enabled) {
Takashi Iwai ac83bf
 		ret = 0;
Takashi Iwai ac83bf
 		goto out_free;
Takashi Iwai ac83bf
 	}
Takashi Iwai ac83bf
@@ -978,7 +977,7 @@ static int iwl_mvm_get_ppag_table(struct iwl_mvm *mvm)
Takashi Iwai ac83bf
 			    (j != 0 &&
Takashi Iwai ac83bf
 			     (gain[i * num_sub_bands + j] > ACPI_PPAG_MAX_HB ||
Takashi Iwai ac83bf
 			      gain[i * num_sub_bands + j] < ACPI_PPAG_MIN_HB))) {
Takashi Iwai ac83bf
-				ppag_table.v1.enabled = cpu_to_le32(0);
Takashi Iwai ac83bf
+				mvm->fwrt.ppag_table.v1.enabled = cpu_to_le32(0);
Takashi Iwai ac83bf
 				ret = -EINVAL;
Takashi Iwai ac83bf
 				goto out_free;
Takashi Iwai ac83bf
 			}
Takashi Iwai ac83bf
-- 
Takashi Iwai ac83bf
2.26.2
Takashi Iwai ac83bf