| From 473f0a763d2c7cd68a6dedf51e7d81e8f58f78ac Mon Sep 17 00:00:00 2001 |
| From: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> |
| Date: Fri, 7 Sep 2018 23:13:12 +0200 |
| Subject: mt76x0: run vco calibration for each channel configuration |
| |
| From: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> |
| |
| 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 | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c |
| +++ b/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c |
| @@ -757,10 +757,10 @@ __mt76x0_phy_set_channel(struct mt76x0_d |
| /* 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; |