mt76: rework tx power handling
authorFelix Fietkau <nbd@nbd.name>
Tue, 3 Apr 2018 19:52:51 +0000 (21:52 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 24 Apr 2018 17:29:57 +0000 (20:29 +0300)
commit80f28994f7d9c01e2af3d8584874cfc1904a7553
tree797a3671b2594a202c749780d4ca7a087b1e73a8
parent9f67c277a80f37a6594ae4ea3b78157773e1a23b
mt76: rework tx power handling

There were a number of issues in the existing tx power handling code:

1. The EEPROM target power for chain 0 refers to the actual output power
after the channel and bandwidth delta have been added to the initial
channel gain. This means the delta values should not be added/subtracted
for the rate power calculation

2. When power is reduced significantly, the initial channel gain
underflows very quickly, while the per-rate power offsets are high.
This miscalculation causes effective tx power to be increased when it
should actually be lowered.

Fix this by trying to adjust the channel gain to the lowest power from
the rate table. In case of under- or overflow, compensate by adding an
appropriate delta to the rate power values.

This makes power configuration more accurate on a wider range of
configurable values

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/mediatek/mt76/mt76x2_phy.c