b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame] | 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 | @@ -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) |