diff options
author | Lorenzo Bianconi <lorenzo@kernel.org> | 2019-05-26 16:05:11 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2019-06-27 12:58:13 +0200 |
commit | 61d368247ec1ae1dee241a5bcf747591104ac67a (patch) | |
tree | 697a7f9b55e2e2a266d4d526adff017b60d23097 /drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c | |
parent | c19b0ca503a855f41358f98ac533d2a4e867fe34 (diff) |
mt76: mt7615: add the capability to configure tx power
Introduce mt7615_mcu_set_tx_power routine in order to cap tx power
according to the value configured by the user
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c')
-rw-r--r-- | drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c b/drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c index 714590878d65..023c8bbc767d 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c +++ b/drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c @@ -110,6 +110,40 @@ static void mt7615_eeprom_parse_hw_cap(struct mt7615_dev *dev) } } +int mt7615_eeprom_get_power_index(struct ieee80211_channel *chan, + u8 chain_idx) +{ + int index; + + if (chain_idx > 3) + return -EINVAL; + + if (chan->band == NL80211_BAND_2GHZ) { + index = MT_EE_TX0_2G_TARGET_POWER + chain_idx * 6; + } else { + int group = mt7615_get_channel_group(chan->hw_value); + + switch (chain_idx) { + case 1: + index = MT_EE_TX1_5G_G0_TARGET_POWER; + break; + case 2: + index = MT_EE_TX2_5G_G0_TARGET_POWER; + break; + case 3: + index = MT_EE_TX3_5G_G0_TARGET_POWER; + break; + case 0: + default: + index = MT_EE_TX0_5G_G0_TARGET_POWER; + break; + } + index += 5 * group; + } + + return index; +} + int mt7615_eeprom_init(struct mt7615_dev *dev) { int ret; |