]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mt76x0: run vco calibration for each channel configuration
authorLorenzo Bianconi <lorenzo.bianconi@redhat.com>
Fri, 7 Sep 2018 21:13:12 +0000 (23:13 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 27 Nov 2018 15:13:11 +0000 (16:13 +0100)
commit 473f0a763d2c7cd68a6dedf51e7d81e8f58f78ac upstream.

According to vendor sdk, vco calibration has to be executed
for each channel configuration whereas mcu calibration has to be
performed during channel scanning. This patch fixes the mt76x0
monitor mode issue since in that configuration vco calibration
was never executed

Fixes: 10de7a8b4ab9 ("mt76x0: phy files")
Tested-by: Sid Hayn <sidhayn@gmail.com>
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Cc: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c

index 5da7bfbe907ff65c8ac3b871a468ee4e287bba5c..14e8c575f6c3ec83ec208c53b53890fd37b5f0d0 100644 (file)
@@ -757,10 +757,10 @@ __mt76x0_phy_set_channel(struct mt76x0_dev *dev,
        /* Vendor driver don't do it */
        /* mt76x0_phy_set_tx_power(dev, channel, rf_bw_band); */
 
+       mt76x0_vco_cal(dev, channel);
        if (scan)
-               mt76x0_vco_cal(dev, channel);
+               mt76x0_mcu_calibrate(dev, MCU_CAL_RXDCOC, 1);
 
-       mt76x0_mcu_calibrate(dev, MCU_CAL_RXDCOC, 1);
        mt76x0_phy_set_chan_pwr(dev, channel);
 
        dev->mt76.chandef = *chandef;