OSDN Git Service

mt7601u: check the status of device in calibration
authorZhi Han <z.han@gmx.net>
Thu, 17 Dec 2020 16:16:57 +0000 (17:16 +0100)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 14 Jan 2021 17:30:39 +0000 (19:30 +0200)
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>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20201217161657.GB12562@E480
drivers/net/wireless/mediatek/mt7601u/phy.c

index 28db24a..8a00f6a 100644 (file)
@@ -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);