summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
diff options
context:
space:
mode:
authorKalle Valo2019-02-19 15:40:56 +0100
committerKalle Valo2019-02-19 15:40:56 +0100
commitaf5399b245fc7d02ae61313cbe329dcc3a590d45 (patch)
treecdc970776664de59459ee5f3aa11624e1ecbc8e3 /drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
parentMerge tag 'iwlwifi-next-for-kalle-2019-02-14' of git://git.kernel.org/pub/scm... (diff)
parentmt76: mt76x2: simplify per-chain signal strength handling (diff)
downloadkernel-qcow2-linux-af5399b245fc7d02ae61313cbe329dcc3a590d45.tar.gz
kernel-qcow2-linux-af5399b245fc7d02ae61313cbe329dcc3a590d45.tar.xz
kernel-qcow2-linux-af5399b245fc7d02ae61313cbe329dcc3a590d45.zip
Merge tag 'mt76-for-kvalo-2019-02-18' of https://github.com/nbd168/wireless
mt76 patches for 5.1 * beacon support for USB devices (mesh+ad-hoc only) * mt76x0 tx power fixes * fixes for encryption, calibration and ED/CCA * more code unification * USB fixes * fix for using the correct hweight8 function
Diffstat (limited to 'drivers/net/wireless/mediatek/mt76/mt76x0/phy.c')
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt76x0/phy.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c b/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
index 1117cdc15b04..3467a32f5fda 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
@@ -847,14 +847,15 @@ void mt76x0_phy_set_txpower(struct mt76x02_dev *dev)
struct mt76_rate_power *t = &dev->mt76.rate_power;
s8 info;
- mt76x0_get_tx_power_per_rate(dev);
- mt76x0_get_power_info(dev, &info);
+ mt76x0_get_tx_power_per_rate(dev, dev->mt76.chandef.chan, t);
+ mt76x0_get_power_info(dev, dev->mt76.chandef.chan, &info);
mt76x02_add_rate_power_offset(t, info);
mt76x02_limit_rate_power(t, dev->mt76.txpower_conf);
dev->mt76.txpower_cur = mt76x02_get_max_rate_power(t);
mt76x02_add_rate_power_offset(t, -info);
+ dev->target_power = info;
mt76x02_phy_set_txpower(dev, info, info);
}
@@ -1006,14 +1007,16 @@ int mt76x0_phy_set_channel(struct mt76x02_dev *dev,
/* enable vco */
mt76x0_rf_set(dev, MT_RF(0, 4), BIT(7));
- if (scan)
+ if (scan) {
+ mt76x02_edcca_init(dev, false);
return 0;
+ }
mt76x02_init_agc_gain(dev);
mt76x0_phy_calibrate(dev, false);
mt76x0_phy_set_txpower(dev);
- mt76x02_edcca_init(dev);
+ mt76x02_edcca_init(dev, true);
ieee80211_queue_delayed_work(dev->mt76.hw, &dev->cal_work,
MT_CALIBRATE_INTERVAL);