diff mbox series

mt7601u: check the status of device in calibration

Message ID 20201217161657.GB12562@E480 (mailing list archive)
State Accepted
Commit 1dac51269d0532bd0847f44f1c3ae7fd2851ac7d
Delegated to: Kalle Valo
Headers show
Series mt7601u: check the status of device in calibration | expand

Commit Message

Zhi Han Dec. 17, 2020, 4:16 p.m. UTC
When the usb device being plugged out, before ieee80211 gets to know the
hw being removed, it gets to know that the association status changed,
and thus ask for the device to do the calibration. This causes error as
the hw is absent.

This can be avoid by checking the status of the device before sending
the calibration request to the device.

Signed-off-by: Zhi Han <z.han@gmx.net>
---
 drivers/net/wireless/mediatek/mt7601u/phy.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Jakub Kicinski Dec. 17, 2020, 4:55 p.m. UTC | #1
On Thu, 17 Dec 2020 17:16:57 +0100 Zhi Han wrote:
> When the usb device being plugged out, before ieee80211 gets to know the
> hw being removed, it gets to know that the association status changed,
> and thus ask for the device to do the calibration. This causes error as
> the hw is absent.
> 
> This can be avoid by checking the status of the device before sending
> the calibration request to the device.
> 
> Signed-off-by: Zhi Han <z.han@gmx.net>

Acked-by: Jakub Kicinski <kuba@kernel.org>
Kalle Valo Jan. 14, 2021, 5:30 p.m. UTC | #2
Zhi Han <z.han@gmx.net> wrote:

> When the usb device being plugged out, before ieee80211 gets to know the
> hw being removed, it gets to know that the association status changed,
> and thus ask for the device to do the calibration. This causes error as
> the hw is absent.
> 
> This can be avoid by checking the status of the device before sending
> the calibration request to the device.
> 
> Signed-off-by: Zhi Han <z.han@gmx.net>
> Acked-by: Jakub Kicinski <kuba@kernel.org>

Patch applied to wireless-drivers-next.git, thanks.

1dac51269d05 mt7601u: check the status of device in calibration
diff mbox series

Patch

diff --git a/drivers/net/wireless/mediatek/mt7601u/phy.c b/drivers/net/wireless/mediatek/mt7601u/phy.c
index 28db24a2b5e5..8a00f6a75ca9 100644
--- a/drivers/net/wireless/mediatek/mt7601u/phy.c
+++ b/drivers/net/wireless/mediatek/mt7601u/phy.c
@@ -586,6 +586,9 @@  static void mt7601u_rxdc_cal(struct mt7601u_dev *dev)

 void mt7601u_phy_recalibrate_after_assoc(struct mt7601u_dev *dev)
 {
+	if (test_bit(MT7601U_STATE_REMOVED, &dev->state))
+		return;
+
 	mt7601u_mcu_calibrate(dev, MCU_CAL_DPD, dev->curr_temp);

 	mt7601u_rxdc_cal(dev);