update .gitignore
[librecmc/librecmc.git] / package / kernel / mac80211 / patches / 303-Revert-ath9k-interpret-requested-txpower-in-EIRP-dom.patch
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 @@ -2910,7 +2910,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  
19         if (!chan)
20                 return;
21 @@ -2918,10 +2919,15 @@ void ath9k_hw_apply_txpower(struct ath_h
22         channel = chan->chan;
23         chan_pwr = min_t(int, channel->max_power * 2, MAX_RATE_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,
32                                  ath9k_regd_get_ctl(reg, chan),
33 -                                get_antenna_gain(ah, chan), new_pwr, test);
34 +                                ant_reduction, new_pwr, test);
35  }
36  
37  void ath9k_hw_set_txpowerlimit(struct ath_hw *ah, u32 limit, bool test)