Skip to content

Commit

Permalink
mac80211: set CLEAR_PS for pspolled frames
Browse files Browse the repository at this point in the history
This patch sets IEEE80211_TX_CTL_CLEAR_PS_FILT for outgoing
frames for a half-wake station.

this is necessary if one wants to get ps-poll working properly with a p54 ap.

Signed-off-by: Christian Lamparter <chunkeey@web.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Christian Lamparter authored and John W. Linville committed Apr 22, 2009
1 parent d577e7c commit fef9992
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion net/mac80211/tx.c
Original file line number Diff line number Diff line change
Expand Up @@ -409,8 +409,24 @@ ieee80211_tx_h_unicast_ps_buf(struct ieee80211_tx_data *tx)
sta->sta.addr);
}
#endif /* CONFIG_MAC80211_VERBOSE_PS_DEBUG */
clear_sta_flags(sta, WLAN_STA_PSPOLL);
if (test_and_clear_sta_flags(sta, WLAN_STA_PSPOLL)) {
/*
* The sleeping station with pending data is now snoozing.
* It queried us for its buffered frames and will go back
* to deep sleep once it got everything.
*
* inform the driver, in case the hardware does powersave
* frame filtering and keeps a station blacklist on its own
* (e.g: p54), so that frames can be delivered unimpeded.
*
* Note: It should be save to disable the filter now.
* As, it is really unlikely that we still have any pending
* frame for this station in the hw's buffers/fifos left,
* that is not rejected with a unsuccessful tx_status yet.
*/

info->flags |= IEEE80211_TX_CTL_CLEAR_PS_FILT;
}
return TX_CONTINUE;
}

Expand Down

0 comments on commit fef9992

Please sign in to comment.