Linux wireless drivers development
 help / color / mirror / Atom feed
* [RFC PATCH] mac80211: Send null data frame after disabling power save in Tx path.
@ 2009-11-25  7:05 Vivek Natarajan
  2009-11-25  8:37 ` Kalle Valo
  2009-11-25 10:21 ` Johannes Berg
  0 siblings, 2 replies; 4+ messages in thread
From: Vivek Natarajan @ 2009-11-25  7:05 UTC (permalink / raw)
  To: linux-wireless

For drivers setting IEEE80211_HW_PS_NULLFUNC_STACK, a null data frame
with PM bit off has to be sent before sending normal data frames.
If it is done in ps_disable_work, the actual data frame would be
queued first before this work is executed and hence null data frame
will be queued later. And also, this null data frame has to be sent
only after clearing CONF_PS.
Hence, directly clearing CONF_PS and sending null data frame in
ieee80211_xmit seems to function properly.

Signed-off-by: Vivek Natarajan <vnatarajan@atheros.com>
---
 net/mac80211/tx.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 943def2..51f537c 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1433,10 +1433,10 @@ static void ieee80211_xmit(struct ieee80211_sub_if_data *sdata,
 
 	if (need_dynamic_ps(local)) {
 		if (local->hw.conf.flags & IEEE80211_CONF_PS) {
-			ieee80211_stop_queues_by_reason(&local->hw,
-					IEEE80211_QUEUE_STOP_REASON_PS);
-			ieee80211_queue_work(&local->hw,
-					&local->dynamic_ps_disable_work);
+			local->hw.conf.flags &= ~IEEE80211_CONF_PS;
+			ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_PS);
+			if (local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK)
+				ieee80211_send_nullfunc(local, sdata, 0);
 		}
 
 		mod_timer(&local->dynamic_ps_timer, jiffies +
-- 
1.6.0.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-11-25 11:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-25  7:05 [RFC PATCH] mac80211: Send null data frame after disabling power save in Tx path Vivek Natarajan
2009-11-25  8:37 ` Kalle Valo
2009-11-25  9:50   ` Vivek Natarajan
2009-11-25 10:21 ` Johannes Berg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox