diff options
author | Matt Chen <matt.chen@intel.com> | 2021-10-16 00:19:08 +0800 |
---|---|---|
committer | iwlwifi publisher <> | 2021-10-20 16:31:59 +0000 |
commit | 832b2772c29380bc5201ed4fe80f333f07b447fe (patch) | |
tree | 2f543d90585b19ac0c2a698efdf19c8abea88e9f | |
parent | 04863f352ea1a3a16adb14c314ed2edd3ef7920b (diff) | |
download | backport-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.c | 40 | ||||
-rw-r--r-- | versions | 2 |
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 @@ -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" |