mt76x2: convert between per-chain tx power and combined output

Using both chains adds max. 3 dBm.

Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
Felix Fietkau
2017-12-03 21:45:43 +01:00
parent 58364a2ac4
commit c2bd89ee91
2 changed files with 10 additions and 0 deletions
+3
View File
@@ -785,6 +785,9 @@ mt76x2_init_txpower(struct mt76x2_dev *dev,
chan->max_power = mt76x2_get_max_rate_power(&t) +
target_power;
chan->max_power /= 2;
/* convert to combined output power on 2x2 devices */
chan->max_power += 3;
}
}
+7
View File
@@ -156,6 +156,9 @@ mt76x2_config(struct ieee80211_hw *hw, u32 changed)
if (changed & IEEE80211_CONF_CHANGE_POWER) {
dev->txpower_conf = hw->conf.power_level * 2;
/* convert to per-chain power for 2x2 devices */
dev->txpower_conf -= 6;
if (test_bit(MT76_STATE_RUNNING, &dev->mt76.state)) {
mt76x2_phy_set_txpower(dev);
mt76x2_tx_set_txpwr_auto(dev, dev->txpower_conf);
@@ -444,6 +447,10 @@ mt76x2_get_txpower(struct ieee80211_hw *hw, struct ieee80211_vif *vif, int *dbm)
struct mt76x2_dev *dev = hw->priv;
*dbm = dev->txpower_cur / 2;
/* convert from per-chain power to combined output on 2x2 devices */
*dbm += 3;
return 0;
}