Commit a226ccd0 authored by Shayne Chen's avatar Shayne Chen Committed by Felix Fietkau

mt76: mt7915: fix txpower init for TSSI off chips

Fix incorrect txpower init value for TSSI off chips which causes
too small txpower.
Signed-off-by: default avatarShayne Chen <shayne.chen@mediatek.com>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 2df51a2b
...@@ -124,7 +124,7 @@ int mt7915_eeprom_get_target_power(struct mt7915_dev *dev, ...@@ -124,7 +124,7 @@ int mt7915_eeprom_get_target_power(struct mt7915_dev *dev,
struct ieee80211_channel *chan, struct ieee80211_channel *chan,
u8 chain_idx) u8 chain_idx)
{ {
int index; int index, target_power;
bool tssi_on; bool tssi_on;
if (chain_idx > 3) if (chain_idx > 3)
...@@ -133,15 +133,22 @@ int mt7915_eeprom_get_target_power(struct mt7915_dev *dev, ...@@ -133,15 +133,22 @@ int mt7915_eeprom_get_target_power(struct mt7915_dev *dev,
tssi_on = mt7915_tssi_enabled(dev, chan->band); tssi_on = mt7915_tssi_enabled(dev, chan->band);
if (chan->band == NL80211_BAND_2GHZ) { if (chan->band == NL80211_BAND_2GHZ) {
index = MT_EE_TX0_POWER_2G + chain_idx * 3 + !tssi_on; index = MT_EE_TX0_POWER_2G + chain_idx * 3;
target_power = mt7915_eeprom_read(dev, index);
if (!tssi_on)
target_power += mt7915_eeprom_read(dev, index + 1);
} else { } else {
int group = tssi_on ? int group = mt7915_get_channel_group(chan->hw_value);
mt7915_get_channel_group(chan->hw_value) : 8;
index = MT_EE_TX0_POWER_5G + chain_idx * 12;
target_power = mt7915_eeprom_read(dev, index + group);
index = MT_EE_TX0_POWER_5G + chain_idx * 12 + group; if (!tssi_on)
target_power += mt7915_eeprom_read(dev, index + 8);
} }
return mt7915_eeprom_read(dev, index); return target_power;
} }
static const u8 sku_cck_delta_map[] = { static const u8 sku_cck_delta_map[] = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment