* [PATCH 0/3] wl1251 power save fixes for 2.6.33
@ 2009-11-26 8:55 Kalle Valo
2009-11-26 8:55 ` [PATCH 1/3] wl1251: remove false warning messages Kalle Valo
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Kalle Valo @ 2009-11-26 8:55 UTC (permalink / raw)
To: linville; +Cc: linux-wireless
Hi John,
my testing revealed serious power save problems in wl1251. If possible,
please send the fixes to 2.6.33. The patches should be simple enough and
they make a huge improvement.
---
Kalle Valo (3):
wl1251: remove false warning messages
wl1251: fix bssid handling
wl1251: don't build null data template in wl1251_op_config()
drivers/net/wireless/wl12xx/wl1251_main.c | 36 ++++++++++++-----------------
1 files changed, 15 insertions(+), 21 deletions(-)
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH 1/3] wl1251: remove false warning messages 2009-11-26 8:55 [PATCH 0/3] wl1251 power save fixes for 2.6.33 Kalle Valo @ 2009-11-26 8:55 ` Kalle Valo 2009-11-26 8:56 ` [PATCH 2/3] wl1251: fix bssid handling Kalle Valo 2009-11-26 8:56 ` [PATCH 3/3] wl1251: don't build null data template in wl1251_op_config() Kalle Valo 2 siblings, 0 replies; 4+ messages in thread From: Kalle Valo @ 2009-11-26 8:55 UTC (permalink / raw) To: linville; +Cc: linux-wireless From: Kalle Valo <kalle.valo@nokia.com> There was a warning from wl1251_op_bss_info_changed(): wl1251: WARNING Set ctsprotect failed 0 It was printed always, it's completely false and can be removed. Signed-off-by: Kalle Valo <kalle.valo@nokia.com> --- drivers/net/wireless/wl12xx/wl1251_main.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/wl12xx/wl1251_main.c b/drivers/net/wireless/wl12xx/wl1251_main.c index ff4be7b..8353139 100644 --- a/drivers/net/wireless/wl12xx/wl1251_main.c +++ b/drivers/net/wireless/wl12xx/wl1251_main.c @@ -1181,8 +1181,6 @@ static void wl1251_op_bss_info_changed(struct ieee80211_hw *hw, wl->beacon_int, wl->dtim_period); if (ret < 0) goto out_sleep; - wl1251_warning("Set ctsprotect failed %d", ret); - goto out_sleep; } } ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/3] wl1251: fix bssid handling 2009-11-26 8:55 [PATCH 0/3] wl1251 power save fixes for 2.6.33 Kalle Valo 2009-11-26 8:55 ` [PATCH 1/3] wl1251: remove false warning messages Kalle Valo @ 2009-11-26 8:56 ` Kalle Valo 2009-11-26 8:56 ` [PATCH 3/3] wl1251: don't build null data template in wl1251_op_config() Kalle Valo 2 siblings, 0 replies; 4+ messages in thread From: Kalle Valo @ 2009-11-26 8:56 UTC (permalink / raw) To: linville; +Cc: linux-wireless From: Kalle Valo <kalle.valo@nokia.com> bssid needs to be copied first in wl1251_op_bss_info_changed(), otherwise templates will have incorrect bssid and power save will not work correctly. Signed-off-by: Kalle Valo <kalle.valo@nokia.com> --- drivers/net/wireless/wl12xx/wl1251_main.c | 30 +++++++++++++++-------------- 1 files changed, 15 insertions(+), 15 deletions(-) diff --git a/drivers/net/wireless/wl12xx/wl1251_main.c b/drivers/net/wireless/wl12xx/wl1251_main.c index 8353139..50d17fc 100644 --- a/drivers/net/wireless/wl12xx/wl1251_main.c +++ b/drivers/net/wireless/wl12xx/wl1251_main.c @@ -1110,6 +1110,21 @@ static void wl1251_op_bss_info_changed(struct ieee80211_hw *hw, if (ret < 0) goto out; + if (changed & BSS_CHANGED_BSSID) { + memcpy(wl->bssid, bss_conf->bssid, ETH_ALEN); + + ret = wl1251_build_null_data(wl); + if (ret < 0) + goto out; + + if (wl->bss_type != BSS_TYPE_IBSS) { + ret = wl1251_join(wl, wl->bss_type, wl->channel, + wl->beacon_int, wl->dtim_period); + if (ret < 0) + goto out_sleep; + } + } + if (changed & BSS_CHANGED_ASSOC) { if (bss_conf->assoc) { wl->beacon_int = bss_conf->beacon_int; @@ -1169,21 +1184,6 @@ static void wl1251_op_bss_info_changed(struct ieee80211_hw *hw, } } - if (changed & BSS_CHANGED_BSSID) { - memcpy(wl->bssid, bss_conf->bssid, ETH_ALEN); - - ret = wl1251_build_null_data(wl); - if (ret < 0) - goto out; - - if (wl->bss_type != BSS_TYPE_IBSS) { - ret = wl1251_join(wl, wl->bss_type, wl->channel, - wl->beacon_int, wl->dtim_period); - if (ret < 0) - goto out_sleep; - } - } - if (changed & BSS_CHANGED_BEACON) { beacon = ieee80211_beacon_get(hw, vif); ret = wl1251_cmd_template_set(wl, CMD_BEACON, beacon->data, ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 3/3] wl1251: don't build null data template in wl1251_op_config() 2009-11-26 8:55 [PATCH 0/3] wl1251 power save fixes for 2.6.33 Kalle Valo 2009-11-26 8:55 ` [PATCH 1/3] wl1251: remove false warning messages Kalle Valo 2009-11-26 8:56 ` [PATCH 2/3] wl1251: fix bssid handling Kalle Valo @ 2009-11-26 8:56 ` Kalle Valo 2 siblings, 0 replies; 4+ messages in thread From: Kalle Valo @ 2009-11-26 8:56 UTC (permalink / raw) To: linville; +Cc: linux-wireless From: Kalle Valo <kalle.valo@nokia.com> The bssid can be zero when null data template is set in wl1251_op_config(). It's enough, and especially safe, to set it once after association. Signed-off-by: Kalle Valo <kalle.valo@nokia.com> --- drivers/net/wireless/wl12xx/wl1251_main.c | 4 ---- 1 files changed, 0 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/wl12xx/wl1251_main.c b/drivers/net/wireless/wl12xx/wl1251_main.c index 50d17fc..2f50a25 100644 --- a/drivers/net/wireless/wl12xx/wl1251_main.c +++ b/drivers/net/wireless/wl12xx/wl1251_main.c @@ -629,10 +629,6 @@ static int wl1251_op_config(struct ieee80211_hw *hw, u32 changed) goto out_sleep; } - ret = wl1251_build_null_data(wl); - if (ret < 0) - goto out_sleep; - if (conf->flags & IEEE80211_CONF_PS && !wl->psm_requested) { wl1251_debug(DEBUG_PSM, "psm enabled"); ^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-11-26 9:02 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-11-26 8:55 [PATCH 0/3] wl1251 power save fixes for 2.6.33 Kalle Valo 2009-11-26 8:55 ` [PATCH 1/3] wl1251: remove false warning messages Kalle Valo 2009-11-26 8:56 ` [PATCH 2/3] wl1251: fix bssid handling Kalle Valo 2009-11-26 8:56 ` [PATCH 3/3] wl1251: don't build null data template in wl1251_op_config() Kalle Valo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox