aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/mlme.c
diff options
context:
space:
mode:
authorVasanthakumar Thiagarajan <vasanth@atheros.com>2009-01-09 07:44:15 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-01-29 16:00:15 -0500
commita8302de934b5d1897ff146cd0c7ab87d1417c092 (patch)
tree5a73ad4dd787cc02e14aa8975d267adb5812d8fe /net/mac80211/mlme.c
parent01f8162a854df7f9c259c839ad3c1168ac13b7b8 (diff)
mac80211: Handle power constraint level advertised in 11d+h beacon
This patch uses power constraint level while determining the maximum transmit power, there by it makes sure that any power mitigation requirement for the channel in the current regulatory domain is met. Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r--net/mac80211/mlme.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 82c598a83687..f0d42498c257 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -905,6 +905,8 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
905 /* channel(_type) changes are handled by ieee80211_hw_config */ 905 /* channel(_type) changes are handled by ieee80211_hw_config */
906 local->oper_channel_type = NL80211_CHAN_NO_HT; 906 local->oper_channel_type = NL80211_CHAN_NO_HT;
907 907
908 local->power_constr_level = 0;
909
908 del_timer_sync(&local->dynamic_ps_timer); 910 del_timer_sync(&local->dynamic_ps_timer);
909 cancel_work_sync(&local->dynamic_ps_enable_work); 911 cancel_work_sync(&local->dynamic_ps_enable_work);
910 912
@@ -1849,6 +1851,13 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata,
1849 * for the BSSID we are associated to */ 1851 * for the BSSID we are associated to */
1850 regulatory_hint_11d(local->hw.wiphy, 1852 regulatory_hint_11d(local->hw.wiphy,
1851 elems.country_elem, elems.country_elem_len); 1853 elems.country_elem, elems.country_elem_len);
1854
1855 /* TODO: IBSS also needs this */
1856 if (elems.pwr_constr_elem)
1857 ieee80211_handle_pwr_constr(sdata,
1858 le16_to_cpu(mgmt->u.probe_resp.capab_info),
1859 elems.pwr_constr_elem,
1860 elems.pwr_constr_elem_len);
1852 } 1861 }
1853 1862
1854 ieee80211_bss_info_change_notify(sdata, changed); 1863 ieee80211_bss_info_change_notify(sdata, changed);