diff options
author | Stanislaw Gruszka <sgruszka@redhat.com> | 2018-10-16 10:58:43 +0300 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2018-11-30 14:21:40 +0300 |
commit | a83150eaad42769e4d08b6e07956a489e40214ae (patch) | |
tree | cfa1b31cc72fe8cef85b7ccc28a6cfd27d7856aa /drivers/net/wireless/mediatek/mt76/mt76x0 | |
parent | 1163bdb636a118b9d7c3c03b9e67e7e799425a9c (diff) | |
download | linux-a83150eaad42769e4d08b6e07956a489e40214ae.tar.xz |
mt76x0: do not perform MCU calibration for MT7630
Driver works better for MT7630 without MCU calibration, which
looks like it can hangs the firmware. Vendor driver do not
perform it for MT7630 as well.
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'drivers/net/wireless/mediatek/mt76/mt76x0')
-rw-r--r-- | drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0.h | 5 | ||||
-rw-r--r-- | drivers/net/wireless/mediatek/mt76/mt76x0/phy.c | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0.h b/drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0.h index 17ad3fa0858b..33475788bc26 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0.h +++ b/drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0.h @@ -37,6 +37,11 @@ static inline bool is_mt7610e(struct mt76x02_dev *dev) return false; } +static inline bool is_mt7630(struct mt76x02_dev *dev) +{ + return mt76_chip(&dev->mt76) == 0x7630; +} + /* Init */ struct mt76x02_dev * mt76x0_alloc_device(struct device *pdev, diff --git a/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c b/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c index dbb92586b6e1..37e1ead1dc85 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c +++ b/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c @@ -500,6 +500,9 @@ void mt76x0_phy_calibrate(struct mt76x02_dev *dev, bool power_on) struct ieee80211_channel *chan = dev->mt76.chandef.chan; u32 val, tx_alc, reg_val; + if (is_mt7630(dev)) + return; + if (power_on) { mt76x02_mcu_calibrate(dev, MCU_CAL_R, 0, false); mt76x02_mcu_calibrate(dev, MCU_CAL_VCO, chan->hw_value, |