[PATCH] Configure dtim_period dynamicly
Eugene Krasnikov
k.eugene.e at gmail.com
Fri Jun 28 04:29:23 EDT 2013
Before dtim period was hardcoded to 2. Change it dynamically
based on AP configuration.
Signed-off-by: Eugene Krasnikov <k.eugene.e at gmail.com>
---
main.c | 8 ++++++++
smd.c | 2 +-
wcn36xx.h | 1 +
3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/main.c b/main.c
index de787f3..21d7544 100644
--- a/main.c
+++ b/main.c
@@ -522,6 +522,14 @@ static void wcn36xx_bss_info_changed(struct ieee80211_hw *hw,
wcn->beacon_interval = bss_conf->beacon_int;
}
+ if (changed & BSS_CHANGED_DTIM_PERIOD) {
+ wcn36xx_dbg(WCN36XX_DBG_MAC,
+ "mac bss changed dtim period%d",
+ bss_conf->dtim_period);
+
+ wcn->dtim_period = bss_conf->dtim_period;
+ }
+
if (changed & BSS_CHANGED_BSSID) {
wcn36xx_dbg(WCN36XX_DBG_MAC, "mac bss changed_bssid %pM",
bss_conf->bssid);
diff --git a/smd.c b/smd.c
index 1f64a67..06c5b30 100644
--- a/smd.c
+++ b/smd.c
@@ -736,7 +736,7 @@ int wcn36xx_smd_config_bss(struct wcn36xx *wcn, enum nl80211_iftype type,
bss->lsig_tx_op_protection_full_support = 0;
bss->rifs_mode = 0;
bss->beacon_interval = beacon_interval;
- bss->dtim_period = 2;
+ bss->dtim_period = wcn->dtim_period;
bss->tx_channel_width_set = 0;
bss->oper_channel = wcn->ch;
bss->ext_channel = 0;
diff --git a/wcn36xx.h b/wcn36xx.h
index 0d0ed0c..1e6eea1 100644
--- a/wcn36xx.h
+++ b/wcn36xx.h
@@ -116,6 +116,7 @@ struct wcn36xx {
u16 aid;
struct wcn36xx_vif *current_vif;
u16 beacon_interval;
+ u8 dtim_period;
enum ani_ed_type encrypt_type;
u8 fw_revision;
u8 fw_version;
--
1.7.11.3
More information about the wcn36xx
mailing list