2018-06-09 10:10:46

by Stanislaw Gruszka

[permalink] [raw]
Subject: [PATCH] mt7601u: remove warning when avg_rssi is zero

It turned out that we can run calibration without already received
frames with RSSI data. In such case just don't update AGC register
and don't print the warning.

Fixes: b305a6ab0247 ("mt7601u: use EWMA to calculate avg_rssi")
Reported-by: Adam Borowski <[email protected]>
Signed-off-by: Stanislaw Gruszka <[email protected]>
---
drivers/net/wireless/mediatek/mt7601u/phy.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/mediatek/mt7601u/phy.c b/drivers/net/wireless/mediatek/mt7601u/phy.c
index d440c550bdb1..3ffc8d19285b 100644
--- a/drivers/net/wireless/mediatek/mt7601u/phy.c
+++ b/drivers/net/wireless/mediatek/mt7601u/phy.c
@@ -985,13 +985,15 @@ static void mt7601u_agc_tune(struct mt7601u_dev *dev)
*/
spin_lock_bh(&dev->con_mon_lock);
avg_rssi = ewma_rssi_read(&dev->avg_rssi);
- WARN_ON_ONCE(avg_rssi == 0);
+ spin_unlock_bh(&dev->con_mon_lock);
+ if (avg_rssi == 0)
+ return;
+
avg_rssi = -avg_rssi;
if (avg_rssi <= -70)
val -= 0x20;
else if (avg_rssi <= -60)
val -= 0x10;
- spin_unlock_bh(&dev->con_mon_lock);

if (val != mt7601u_bbp_rr(dev, 66))
mt7601u_bbp_wr(dev, 66, val);
--
1.9.3


2018-06-24 17:02:02

by Kalle Valo

[permalink] [raw]
Subject: Re: mt7601u: remove warning when avg_rssi is zero

Stanislaw Gruszka <[email protected]> wrote:

> It turned out that we can run calibration without already received
> frames with RSSI data. In such case just don't update AGC register
> and don't print the warning.
>
> Fixes: b305a6ab0247 ("mt7601u: use EWMA to calculate avg_rssi")
> Reported-by: Adam Borowski <[email protected]>
> Signed-off-by: Stanislaw Gruszka <[email protected]>
> Acked-by: Jakub Kicinski <[email protected]>

Patch applied to wireless-drivers.git, thanks.

92963318a255 mt7601u: remove warning when avg_rssi is zero

--
https://patchwork.kernel.org/patch/10455479/

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

2018-06-09 16:18:23

by Adam Borowski

[permalink] [raw]
Subject: Re: [PATCH] mt7601u: remove warning when avg_rssi is zero

On Sat, Jun 09, 2018 at 12:10:44PM +0200, Stanislaw Gruszka wrote:
> It turned out that we can run calibration without already received
> frames with RSSI data. In such case just don't update AGC register
> and don't print the warning.
>
> Fixes: b305a6ab0247 ("mt7601u: use EWMA to calculate avg_rssi")

The patch is quite obvious, but still had to be tested, at least out of
principle. And unsurprisingly, no Earth-shattering kaboom.

> Reported-by: Adam Borowski <[email protected]>
> Signed-off-by: Stanislaw Gruszka <[email protected]>
> ---
> drivers/net/wireless/mediatek/mt7601u/phy.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/mediatek/mt7601u/phy.c b/drivers/net/wireless/mediatek/mt7601u/phy.c
> index d440c550bdb1..3ffc8d19285b 100644
> --- a/drivers/net/wireless/mediatek/mt7601u/phy.c
> +++ b/drivers/net/wireless/mediatek/mt7601u/phy.c
> @@ -985,13 +985,15 @@ static void mt7601u_agc_tune(struct mt7601u_dev *dev)
> */
> spin_lock_bh(&dev->con_mon_lock);
> avg_rssi = ewma_rssi_read(&dev->avg_rssi);
> - WARN_ON_ONCE(avg_rssi == 0);
> + spin_unlock_bh(&dev->con_mon_lock);
> + if (avg_rssi == 0)
> + return;
> +
> avg_rssi = -avg_rssi;
> if (avg_rssi <= -70)
> val -= 0x20;
> else if (avg_rssi <= -60)
> val -= 0x10;
> - spin_unlock_bh(&dev->con_mon_lock);
>
> if (val != mt7601u_bbp_rr(dev, 66))
> mt7601u_bbp_wr(dev, 66, val);
> --
> 1.9.3


Meow!
--
⢀⣴⠾⠻⢶⣦⠀ I've read an article about how lively happy music boosts
⣾⠁⢰⠒⠀⣿⡁ productivity. You can read it, too, you just need the
⢿⡄⠘⠷⠚⠋⠀ right music while doing so. I recommend Skepticism
⠈⠳⣄⠀⠀⠀⠀ (funeral doom metal).

2018-06-11 22:06:12

by Jakub Kicinski

[permalink] [raw]
Subject: Re: [PATCH] mt7601u: remove warning when avg_rssi is zero

On Sat, 9 Jun 2018 12:10:44 +0200, Stanislaw Gruszka wrote:
> It turned out that we can run calibration without already received
> frames with RSSI data. In such case just don't update AGC register
> and don't print the warning.
>
> Fixes: b305a6ab0247 ("mt7601u: use EWMA to calculate avg_rssi")
> Reported-by: Adam Borowski <[email protected]>
> Signed-off-by: Stanislaw Gruszka <[email protected]>

Acked-by: Jakub Kicinski <[email protected]>

2018-06-18 14:47:34

by Kalle Valo

[permalink] [raw]
Subject: Re: mt7601u: remove warning when avg_rssi is zero

Stanislaw Gruszka <[email protected]> wrote:

> It turned out that we can run calibration without already received
> frames with RSSI data. In such case just don't update AGC register
> and don't print the warning.
>
> Fixes: b305a6ab0247 ("mt7601u: use EWMA to calculate avg_rssi")
> Reported-by: Adam Borowski <[email protected]>
> Signed-off-by: Stanislaw Gruszka <[email protected]>
> Acked-by: Jakub Kicinski <[email protected]>

As the first release for b305a6ab0247 was v4.18-rc1, I'll queue this to 4.18.

--
https://patchwork.kernel.org/patch/10455479/

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