summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Chen <matt.chen@intel.com>2021-10-16 00:19:08 +0800
committeriwlwifi publisher <>2021-10-20 16:31:59 +0000
commit832b2772c29380bc5201ed4fe80f333f07b447fe (patch)
tree2f543d90585b19ac0c2a698efdf19c8abea88e9f
parent04863f352ea1a3a16adb14c314ed2edd3ef7920b (diff)
downloadbackport-iwlwifi-release/core63.tar.gz
[BUGFIX] iwlwifi: xvt: fix missing WGDS tablerelease/core63
When run throug the xvt sar init process, it does not retrieve the WGDS table from the ACPI if there is. Fix this issue to read the WGDS table if ACPI contains it. type=bugfix ticket=jira:ACO-2896 fixes=unknown Change-Id: I8cd79e30acf57b518aec9629d7ce33e06bc3c950 Signed-off-by: Matt Chen <matt.chen@intel.com> Reviewed-on: https://git-amr-3.devtools.intel.com/gerrit/330986 automatic-review: ec ger unix iil jenkins <EC.GER.UNIX.IIL.JENKINS@INTEL.COM> Tested-by: ec ger unix iil jenkins <EC.GER.UNIX.IIL.JENKINS@INTEL.COM> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Reviewed-on: https://git-amr-3.devtools.intel.com/gerrit/331003 x-iwlwifi-stack-dev: ebf3ab44e4665e68f5330bdbed92e3152424022c
-rw-r--r--drivers/net/wireless/intel/iwlwifi/xvt/xvt.c40
-rw-r--r--versions2
2 files changed, 30 insertions, 12 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/xvt/xvt.c b/drivers/net/wireless/intel/iwlwifi/xvt/xvt.c
index b3873a97e9..a6c8032833 100644
--- a/drivers/net/wireless/intel/iwlwifi/xvt/xvt.c
+++ b/drivers/net/wireless/intel/iwlwifi/xvt/xvt.c
@@ -932,19 +932,37 @@ static int iwl_xvt_sar_init(struct iwl_xvt *xvt)
"WRDS SAR BIOS table invalid or unavailable. (%d)\n",
ret);
/*
- * If not available, don't fail and don't bother with EWRD.
- * Return 1 to tell that we can't use WGDS either.
- */
- return 1;
+ * If not available, don't fail and don't bother with EWRD and
+ * WGDS */
+ if (!iwl_sar_get_wgds_table(&xvt->fwrt)) {
+ /*
+ * If basic SAR is not available, we check for WGDS,
+ * which should *not* be available either. If it is
+ * available, issue an error, because we can't use SAR
+ * Geo without basic SAR.
+ */
+ IWL_ERR(xvt, "BIOS contains WGDS but no WRDS\n");
+ }
+ } else {
+ ret = iwl_sar_get_ewrd_table(&xvt->fwrt);
+ /* if EWRD is not available, we can still use
+ * WRDS, so don't fail */
+ if (ret < 0)
+ IWL_DEBUG_RADIO(xvt,
+ "EWRD SAR BIOS table invalid or unavailable. (%d)\n",
+ ret);
+
+ /* read geo SAR table */
+ if (iwl_sar_geo_support(&xvt->fwrt)) {
+ ret = iwl_sar_get_wgds_table(&xvt->fwrt);
+ if (ret < 0)
+ IWL_DEBUG_RADIO(xvt,
+ "Geo SAR BIOS table invalid or unavailable. (%d)\n",
+ ret);
+ /* we don't fail if the table is not available */
+ }
}
- ret = iwl_sar_get_ewrd_table(&xvt->fwrt);
- /* if EWRD is not available, we can still use WRDS, so don't fail */
- if (ret < 0)
- IWL_DEBUG_RADIO(xvt,
- "EWRD SAR BIOS table invalid or unavailable. (%d)\n",
- ret);
-
ret = iwl_xvt_sar_select_profile(xvt, 1, 1);
/*
* If we don't have profile 0 from BIOS, just skip it. This
diff --git a/versions b/versions
index 35f4dabb13..39890eb7a7 100644
--- a/versions
+++ b/versions
@@ -2,5 +2,5 @@ BACKPORTS_VERSION="(see git)"
BACKPORTED_KERNEL_VERSION="(see git)"
BACKPORTED_KERNEL_NAME="iwlwifi"
BACKPORTS_BUILD_TSTAMP=__DATE__ \" \" __TIME__
-BACKPORTS_GIT_TRACKED="iwlwifi-stack-public:release/core63:9328:9602cd73"
+BACKPORTS_GIT_TRACKED="iwlwifi-stack-public:release/core63:9329:ebf3ab44"
BACKPORTS_BRANCH_TSTAMP="May 26 2021 13:28:12"