mac80211: fix power saving clients handling in iwlwifi
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Mon, 20 Feb 2017 13:24:36 +0000 (14:24 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 27 Feb 2017 13:07:47 +0000 (14:07 +0100)
commitd98937f4ea713d21e0fcc345919f86c877dd8d6f
treeae5165d07efcd0fef859c8bf669d7c7e62bb5911
parent890030d3c425f49abaa4acf60e20f288b599f980
mac80211: fix power saving clients handling in iwlwifi

iwlwifi now supports RSS and can't let mac80211 track the
PS state based on the Rx frames since they can come out of
order. iwlwifi is now advertising AP_LINK_PS, and uses
explicit notifications to teach mac80211 about the PS state
of the stations and the PS poll / uAPSD trigger frames
coming our way from the peers.

Because of that, the TIM stopped being maintained in
mac80211. I tried to fix this in commit c68df2e7be0c
("mac80211: allow using AP_LINK_PS with mac80211-generated TIM IE")
but that was later reverted by Felix in commit 6c18a6b4e799
("Revert "mac80211: allow using AP_LINK_PS with mac80211-generated TIM IE")
since it broke drivers that do not implement set_tim.

Since none of the drivers that set AP_LINK_PS have the
set_tim() handler set besides iwlwifi, I can bail out in
__sta_info_recalc_tim if AP_LINK_PS AND .set_tim is not
implemented.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/sta_info.c