mac80211: pass dtim_period to low level driver
This patch adds the dtim_period in ieee80211_bss_conf, this allows the low level driver to know the dtim_period, and to plan power save accordingly. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Zhu Yi <yi.zhu@intel.com> Acked-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:

committed by
John W. Linville

parent
298df1f62a
commit
98f7dfd86c
@@ -551,6 +551,7 @@ static void ieee80211_set_associated(struct net_device *dev,
|
||||
/* set timing information */
|
||||
sdata->bss_conf.beacon_int = bss->beacon_int;
|
||||
sdata->bss_conf.timestamp = bss->timestamp;
|
||||
sdata->bss_conf.dtim_period = bss->dtim_period;
|
||||
|
||||
changed |= ieee80211_handle_bss_capability(sdata, bss);
|
||||
|
||||
@@ -2688,6 +2689,16 @@ static void ieee80211_rx_bss_info(struct net_device *dev,
|
||||
bss->beacon_int = le16_to_cpu(mgmt->u.beacon.beacon_int);
|
||||
bss->capability = le16_to_cpu(mgmt->u.beacon.capab_info);
|
||||
|
||||
if (elems->tim) {
|
||||
struct ieee80211_tim_ie *tim_ie =
|
||||
(struct ieee80211_tim_ie *)elems->tim;
|
||||
bss->dtim_period = tim_ie->dtim_period;
|
||||
}
|
||||
|
||||
/* set default value for buggy APs */
|
||||
if (!elems->tim || bss->dtim_period == 0)
|
||||
bss->dtim_period = 1;
|
||||
|
||||
bss->supp_rates_len = 0;
|
||||
if (elems->supp_rates) {
|
||||
clen = IEEE80211_MAX_SUPP_RATES - bss->supp_rates_len;
|
||||
|
Reference in New Issue
Block a user