2022-01-13 12:24:42

by Luca Coelho

[permalink] [raw]
Subject: [PATCH] iwlwifi: mvm: check if SAR GEO is supported before sending command

From: Luca Coelho <[email protected]>

Older hardware, for instance 3160, do not support SAR GEO offsets. We
used to check for support before sending the command, but when moving
the command to the init phase, we lost the check. This causes a
failure when initializing HW that do not support this command.

Fix that by adding a check before sending the command. Additionally,
fix the caller so that it checks for the return value of the
iwl_mvm_sar_geo_init() function, which it was ignoring.

Fixes: db700bc35703 ("iwlwifi: mvm: check if SAR GEO is supported before sending command")
Cc: [email protected] # 5.15+
Reported-by: Len Brown <[email protected]>
Signed-off-by: Luca Coelho <[email protected]>
---
drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
index 6f4690e56a46..6528a6253336 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
@@ -882,6 +882,10 @@ static int iwl_mvm_sar_geo_init(struct iwl_mvm *mvm)
offsetof(struct iwl_geo_tx_power_profiles_cmd_v4, ops) !=
offsetof(struct iwl_geo_tx_power_profiles_cmd_v5, ops));

+ /* not supporting GEO is not a failure, so return 0 */
+ if (!iwl_sar_geo_support(&mvm->fwrt))
+ return 0;
+
/* the ops field is at the same spot for all versions, so set in v1 */
cmd.v1.ops = cpu_to_le32(IWL_PER_CHAIN_OFFSET_SET_TABLES);

@@ -1741,7 +1745,7 @@ int iwl_mvm_up(struct iwl_mvm *mvm)
ret = iwl_mvm_sar_init(mvm);
if (ret == 0)
ret = iwl_mvm_sar_geo_init(mvm);
- else if (ret < 0)
+ if (ret < 0)
goto error;

ret = iwl_mvm_sgom_init(mvm);
--
2.34.1


2022-01-13 17:02:18

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] iwlwifi: mvm: check if SAR GEO is supported before sending command

Luca Coelho <[email protected]> writes:

> From: Luca Coelho <[email protected]>
>
> Older hardware, for instance 3160, do not support SAR GEO offsets. We
> used to check for support before sending the command, but when moving
> the command to the init phase, we lost the check. This causes a
> failure when initializing HW that do not support this command.
>
> Fix that by adding a check before sending the command. Additionally,
> fix the caller so that it checks for the return value of the
> iwl_mvm_sar_geo_init() function, which it was ignoring.
>
> Fixes: db700bc35703 ("iwlwifi: mvm: check if SAR GEO is supported before sending command")

$ git show db700bc35703
fatal: ambiguous argument 'db700bc35703': unknown revision or path not in the working tree.

No need to resend because of this, if you can provide the commit id I
can fix the tag.

--
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2022-01-13 17:18:10

by Luca Coelho

[permalink] [raw]
Subject: Re: [PATCH] iwlwifi: mvm: check if SAR GEO is supported before sending command

On Thu, 2022-01-13 at 12:47 +0200, Kalle Valo wrote:
> Luca Coelho <[email protected]> writes:
>
> > From: Luca Coelho <[email protected]>
> >
> > Older hardware, for instance 3160, do not support SAR GEO offsets. We
> > used to check for support before sending the command, but when moving
> > the command to the init phase, we lost the check. This causes a
> > failure when initializing HW that do not support this command.
> >
> > Fix that by adding a check before sending the command. Additionally,
> > fix the caller so that it checks for the return value of the
> > iwl_mvm_sar_geo_init() function, which it was ignoring.
> >
> > Fixes: db700bc35703 ("iwlwifi: mvm: check if SAR GEO is supported before sending command")
>
> $ git show db700bc35703
> fatal: ambiguous argument 'db700bc35703': unknown revision or path not in the working tree.
>
> No need to resend because of this, if you can provide the commit id I
> can fix the tag.

Oops, sorry, I added the tag to my own commit...

This is the correct one:

Fixes: 78a19d5285d9 ("iwlwifi: mvm: Read the PPAG and SAR tables at INIT stage")

--
Luca.

2022-01-28 15:34:17

by Luca Coelho

[permalink] [raw]
Subject: Re: [PATCH] iwlwifi: mvm: check if SAR GEO is supported before sending command

On Thu, 2022-01-13 at 14:09 +0200, Luca Coelho wrote:
> On Thu, 2022-01-13 at 12:47 +0200, Kalle Valo wrote:
> > Luca Coelho <[email protected]> writes:
> >
> > > From: Luca Coelho <[email protected]>
> > >
> > > Older hardware, for instance 3160, do not support SAR GEO offsets. We
> > > used to check for support before sending the command, but when moving
> > > the command to the init phase, we lost the check. This causes a
> > > failure when initializing HW that do not support this command.
> > >
> > > Fix that by adding a check before sending the command. Additionally,
> > > fix the caller so that it checks for the return value of the
> > > iwl_mvm_sar_geo_init() function, which it was ignoring.
> > >
> > > Fixes: db700bc35703 ("iwlwifi: mvm: check if SAR GEO is supported before sending command")
> >
> > $ git show db700bc35703
> > fatal: ambiguous argument 'db700bc35703': unknown revision or path not in the working tree.
> >
> > No need to resend because of this, if you can provide the commit id I
> > can fix the tag.
>
> Oops, sorry, I added the tag to my own commit...
>
> This is the correct one:
>
> Fixes: 78a19d5285d9 ("iwlwifi: mvm: Read the PPAG and SAR tables at INIT stage")

As we discussed on IRC, this is not the right fix. I have now finally
had the time to fix it properly, so let's drop this patch. I'll send a
new one soon.

--
Cheers,
Luca.