mbox series

[v2,00/12] iwlwifi: updates intended for v5.12 2021-02-07

Message ID 20210210115637.276676-1-luca@coelho.fi
Headers show
Series iwlwifi: updates intended for v5.12 2021-02-07 | expand

Message

Luca Coelho Feb. 10, 2021, 11:56 a.m. UTC
From: Luca Coelho <luciano.coelho@intel.com>

Hi,

In v2:

* Rebased on top of "iwlwifi: add new cards for So and Qu family",
  which wasn't taken to v5.11.


Here's the fifth set of patches intended for v5.12.  It's the usual
development, new features, cleanups and bugfixes.

The changes are:

* Add some device IDs that got lost in a rebase;
* A bunch of fixes in the PPAG code;
* Some other small fixes, clean-ups and improvements.

As usual, I'm pushing this to a pending branch, for kbuild bot, and
will send a pull-request later.

Please review.

Cheers,
Luca.


Emmanuel Grumbach (2):
  iwlwifi: mvm: enhance a print in CSA flows
  iwlwifi: pcie: NULLify pointers after free

Johannes Berg (2):
  iwlwifi: pcie: don't disable interrupts for reg_lock
  iwlwifi: mvm: remove useless iwl_mvm_resume_d3() function

Luca Coelho (6):
  iwlwifi: pcie: add a few missing entries for So with Hr
  iwlwifi: acpi: fix PPAG table sizes
  iwlwifi: mvm: fix the type we use in the PPAG table validity checks
  iwlwifi: mvm: store PPAG enabled/disabled flag properly
  iwlwifi: mvm: send stored PPAG command instead of local
  iwlwifi: mvm: assign SAR table revision to the command later

Matti Gottlieb (1):
  iwlwifi: pcie: Change Ma device ID

Mordechay Goodstein (1):
  iwlwifi: when HW has rate offload don't look at control field

 drivers/net/wireless/intel/iwlwifi/fw/acpi.h  |  4 +-
 drivers/net/wireless/intel/iwlwifi/mvm/d3.c   |  7 +--
 drivers/net/wireless/intel/iwlwifi/mvm/fw.c   | 45 ++++++++++++-------
 .../net/wireless/intel/iwlwifi/mvm/mac80211.c |  3 +-
 drivers/net/wireless/intel/iwlwifi/mvm/tx.c   | 22 +++++----
 drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 10 ++++-
 drivers/net/wireless/intel/iwlwifi/pcie/rx.c  |  3 ++
 .../net/wireless/intel/iwlwifi/pcie/trans.c   | 19 ++++----
 .../net/wireless/intel/iwlwifi/pcie/tx-gen2.c |  5 +--
 drivers/net/wireless/intel/iwlwifi/pcie/tx.c  | 22 ++++-----
 10 files changed, 80 insertions(+), 60 deletions(-)

Comments

Kai-Heng Feng Sept. 7, 2021, 11:30 a.m. UTC | #1
Hi Luca,

On Wed, Feb 10, 2021 at 8:00 PM Luca Coelho <luca@coelho.fi> wrote:
>

> From: Luca Coelho <luciano.coelho@intel.com>

>

> When reading the PPAG table from ACPI, we should store everything in

> our fwrt structure, so it can be accessed later.  But we had a local

> ppag_table variable in the function and were erroneously storing the

> enabled/disabled flag in it instead of storing it in the fwrt.  Fix

> this by removing the local variable and storing everything directly in

> fwrt.


This patch enables PPAG, but it breaks one of HP laptop with Intel 9560.

dmesg with iwlwifi.debug=0x80 attached in the bug report:
https://bugzilla.kernel.org/show_bug.cgi?id=214343

>

> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>

> Fixes: f2134f66f40e ("iwlwifi: acpi: support ppag table command v2")

> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>

> ---

>  drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 7 +++----

>  1 file changed, 3 insertions(+), 4 deletions(-)

>

> diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c

> index 3bfb80dd17cf..57471ab2f5ef 100644

> --- a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c

> +++ b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c

> @@ -895,7 +895,6 @@ static int iwl_mvm_sar_geo_init(struct iwl_mvm *mvm)

>  static int iwl_mvm_get_ppag_table(struct iwl_mvm *mvm)

>  {

>         union acpi_object *wifi_pkg, *data, *enabled;

> -       union iwl_ppag_table_cmd ppag_table;

>         int i, j, ret, tbl_rev, num_sub_bands;

>         int idx = 2;

>         s8 *gain;

> @@ -949,8 +948,8 @@ static int iwl_mvm_get_ppag_table(struct iwl_mvm *mvm)

>                 goto out_free;

>         }

>

> -       ppag_table.v1.enabled = cpu_to_le32(enabled->integer.value);

> -       if (!ppag_table.v1.enabled) {

> +       mvm->fwrt.ppag_table.v1.enabled = cpu_to_le32(enabled->integer.value);

> +       if (!mvm->fwrt.ppag_table.v1.enabled) {

>                 ret = 0;

>                 goto out_free;

>         }

> @@ -978,7 +977,7 @@ static int iwl_mvm_get_ppag_table(struct iwl_mvm *mvm)

>                             (j != 0 &&

>                              (gain[i * num_sub_bands + j] > ACPI_PPAG_MAX_HB ||

>                               gain[i * num_sub_bands + j] < ACPI_PPAG_MIN_HB))) {

> -                               ppag_table.v1.enabled = cpu_to_le32(0);

> +                               mvm->fwrt.ppag_table.v1.enabled = cpu_to_le32(0);

>                                 ret = -EINVAL;

>                                 goto out_free;

>                         }

> --

> 2.30.0

>
Luca Coelho Sept. 7, 2021, 12:07 p.m. UTC | #2
On Tue, 2021-09-07 at 19:30 +0800, Kai-Heng Feng wrote:
> Hi Luca,

> 

> On Wed, Feb 10, 2021 at 8:00 PM Luca Coelho <luca@coelho.fi> wrote:

> > 

> > From: Luca Coelho <luciano.coelho@intel.com>

> > 

> > When reading the PPAG table from ACPI, we should store everything in

> > our fwrt structure, so it can be accessed later.  But we had a local

> > ppag_table variable in the function and were erroneously storing the

> > enabled/disabled flag in it instead of storing it in the fwrt.  Fix

> > this by removing the local variable and storing everything directly in

> > fwrt.

> 

> This patch enables PPAG, but it breaks one of HP laptop with Intel 9560.

> 

> dmesg with iwlwifi.debug=0x80 attached in the bug report:

> https://bugzilla.kernel.org/show_bug.cgi?id=214343


Thanks for the report.  There seems to be an incompatibility between
the command the driver is sending to the FW and the version the FW
supports.

The commit you mentioned just enables sending this commands, which was
mistakenly not sent before.

Let's continue this discussion in bugzilla.  I'll add more information
there as I figure it out.

--
Cheers,
Luca.