aboutsummaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/523-ath9k_use_configured_antenna_gain.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2014-03-14 10:53:42 +0000
committerFelix Fietkau <nbd@openwrt.org>2014-03-14 10:53:42 +0000
commit705d7a8aa438a21daa646e1dc8c5d0a45295de0c (patch)
treefc4abc713ed39e07d94d500e5f7d44cbc985f43e /package/mac80211/patches/523-ath9k_use_configured_antenna_gain.patch
parent9b1e65073a8b1a571c390a1041bfe7fcd07d97ba (diff)
downloadupstream-705d7a8aa438a21daa646e1dc8c5d0a45295de0c.tar.gz
upstream-705d7a8aa438a21daa646e1dc8c5d0a45295de0c.tar.bz2
upstream-705d7a8aa438a21daa646e1dc8c5d0a45295de0c.zip
AA: mac80211: backport package from trunk r39886
Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/branches/attitude_adjustment@39928 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/mac80211/patches/523-ath9k_use_configured_antenna_gain.patch')
-rw-r--r--package/mac80211/patches/523-ath9k_use_configured_antenna_gain.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/package/mac80211/patches/523-ath9k_use_configured_antenna_gain.patch b/package/mac80211/patches/523-ath9k_use_configured_antenna_gain.patch
new file mode 100644
index 0000000000..30aa9ee187
--- /dev/null
+++ b/package/mac80211/patches/523-ath9k_use_configured_antenna_gain.patch
@@ -0,0 +1,34 @@
+--- a/drivers/net/wireless/ath/ath.h
++++ b/drivers/net/wireless/ath/ath.h
+@@ -74,6 +74,7 @@ struct ath_regulatory {
+ u16 max_power_level;
+ u16 current_rd;
+ int16_t power_limit;
++ int16_t max_antenna_gain;
+ struct reg_dmn_pair_mapping *regpair;
+ };
+
+--- a/drivers/net/wireless/ath/ath9k/hw.c
++++ b/drivers/net/wireless/ath/ath9k/hw.c
+@@ -2721,7 +2721,7 @@ void ath9k_hw_apply_txpower(struct ath_h
+ channel = chan->chan;
+ chan_pwr = min_t(int, channel->max_power * 2, MAX_RATE_POWER);
+ new_pwr = min_t(int, chan_pwr, reg->power_limit);
+- max_gain = chan_pwr - new_pwr + channel->max_antenna_gain * 2;
++ max_gain = chan_pwr - new_pwr + reg->max_antenna_gain * 2;
+
+ ant_gain = get_antenna_gain(ah, chan);
+ if (ant_gain > max_gain)
+--- a/drivers/net/wireless/ath/ath9k/main.c
++++ b/drivers/net/wireless/ath/ath9k/main.c
+@@ -1371,7 +1371,10 @@ static int ath9k_config(struct ieee80211
+ }
+
+ if (changed & IEEE80211_CONF_CHANGE_POWER) {
++ struct ath_regulatory *reg = ath9k_hw_regulatory(ah);
++
+ ath_dbg(common, CONFIG, "Set power: %d\n", conf->power_level);
++ reg->max_antenna_gain = conf->max_antenna_gain;
+ sc->config.txpowlimit = 2 * conf->power_level;
+ ath9k_cmn_update_txpow(ah, sc->curtxpow,
+ sc->config.txpowlimit, &sc->curtxpow);