9016da963b35f1b4951420970b22787adb22b45d
[openwrt/staging/linusw.git] /
1 From: Felix Fietkau <nbd@nbd.name>
2 Date: Sat, 14 May 2016 14:51:02 +0200
3 Subject: [PATCH] Revert "ath9k: interpret requested txpower in EIRP
4 domain"
5
6 This reverts commit 71f5137bf010c6faffab50c0ec15374c59c4a411.
7 ---
8
9 --- a/drivers/net/wireless/ath/ath9k/hw.c
10 +++ b/drivers/net/wireless/ath/ath9k/hw.c
11 @@ -2975,7 +2975,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 @@ -2987,9 +2988,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)