Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fef99929 authored by Christian Lamparter's avatar Christian Lamparter Committed by John W. Linville
Browse files

mac80211: set CLEAR_PS for pspolled frames



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: default avatarChristian Lamparter <chunkeey@web.de>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent d577e7cd
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
@@ -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;
}