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

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
Loading
Loading
Loading
Loading
+13 −6
Original line number Diff line number Diff line
@@ -124,7 +124,7 @@ int mt7915_eeprom_get_target_power(struct mt7915_dev *dev,
				   struct ieee80211_channel *chan,
				   u8 chain_idx)
{
	int index;
	int index, target_power;
	bool tssi_on;

	if (chain_idx > 3)
@@ -133,15 +133,22 @@ int mt7915_eeprom_get_target_power(struct mt7915_dev *dev,
	tssi_on = mt7915_tssi_enabled(dev, chan->band);

	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 {
		int group = tssi_on ?
			    mt7915_get_channel_group(chan->hw_value) : 8;
		int group = mt7915_get_channel_group(chan->hw_value);

		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[] = {