blob: 406d03e2fee33f6df0505d167793dd6ff2e0350b [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001From: Felix Fietkau <nbd@nbd.name>
2Date: Sat, 14 May 2016 14:51:02 +0200
3Subject: [PATCH] Revert "ath9k: interpret requested txpower in EIRP
4 domain"
5
6This reverts commit 71f5137bf010c6faffab50c0ec15374c59c4a411.
7---
8
9--- a/drivers/net/wireless/ath/ath9k/hw.c
10+++ b/drivers/net/wireless/ath/ath9k/hw.c
11@@ -2979,7 +2979,8 @@ void ath9k_hw_apply_txpower(struct ath_h
12 {
13 struct ath_regulatory *reg = ath9k_hw_regulatory(ah);
14 struct ieee80211_channel *channel;
15- int chan_pwr, new_pwr;
16+ int chan_pwr, new_pwr, max_gain;
17+ int ant_gain, ant_reduction = 0;
18 u16 ctl = NO_CTL;
19
20 if (!chan)
21@@ -2991,9 +2992,14 @@ void ath9k_hw_apply_txpower(struct ath_h
22 channel = chan->chan;
23 chan_pwr = min_t(int, channel->max_power * 2, MAX_COMBINED_POWER);
24 new_pwr = min_t(int, chan_pwr, reg->power_limit);
25+ max_gain = chan_pwr - new_pwr + channel->max_antenna_gain * 2;
26+
27+ ant_gain = get_antenna_gain(ah, chan);
28+ if (ant_gain > max_gain)
29+ ant_reduction = ant_gain - max_gain;
30
31 ah->eep_ops->set_txpower(ah, chan, ctl,
32- get_antenna_gain(ah, chan), new_pwr, test);
33+ ant_reduction, new_pwr, test);
34 }
35
36 void ath9k_hw_set_txpowerlimit(struct ath_hw *ah, u32 limit, bool test)