summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/net/mac80211.h2
-rw-r--r--net/mac80211/main.c4
-rw-r--r--net/mac80211/wext.c5
3 files changed, 6 insertions, 5 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 9d67fdf..ffcbd12 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -546,6 +546,7 @@ enum ieee80211_conf_changed {
* @listen_interval: listen interval in units of beacon interval
* @flags: configuration flags defined above
* @power_level: requested transmit power (in dBm)
+ * @user_power_level: User configured transmit power (in dBm)
* @channel: the channel to tune to
* @ht: the HT configuration for the device
* @long_frame_max_tx_count: Maximum number of transmissions for a "long" frame
@@ -559,6 +560,7 @@ struct ieee80211_conf {
int beacon_int;
u32 flags;
int power_level;
+ int user_power_level;
u16 listen_interval;
bool radio_enabled;
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index a6cb480..dca4b7da 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -214,10 +214,10 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed)
changed |= IEEE80211_CONF_CHANGE_CHANNEL;
}
- if (!local->hw.conf.power_level)
+ if (!local->hw.conf.user_power_level)
power = chan->max_power;
else
- power = min(chan->max_power, local->hw.conf.power_level);
+ power = min(chan->max_power, local->hw.conf.user_power_level);
if (local->hw.conf.power_level != power) {
changed |= IEEE80211_CONF_CHANGE_POWER;
local->hw.conf.power_level = power;
diff --git a/net/mac80211/wext.c b/net/mac80211/wext.c
index 48fc6b9..654041b 100644
--- a/net/mac80211/wext.c
+++ b/net/mac80211/wext.c
@@ -549,10 +549,9 @@ static int ieee80211_ioctl_siwtxpower(struct net_device *dev,
else /* Automatic power level setting */
new_power_level = chan->max_power;
- if (local->hw.conf.power_level != new_power_level) {
- local->hw.conf.power_level = new_power_level;
+ local->hw.conf.user_power_level = new_power_level;
+ if (local->hw.conf.power_level != new_power_level)
reconf_flags |= IEEE80211_CONF_CHANGE_POWER;
- }
if (local->hw.conf.radio_enabled != !(data->txpower.disabled)) {
local->hw.conf.radio_enabled = !(data->txpower.disabled);
OpenPOWER on IntegriCloud