diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2016-09-15 16:30:02 +0300 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2016-09-16 14:49:23 +0200 |
commit | c68df2e7be0c1238ea3c281fd744a204ef3b15a0 (patch) | |
tree | f04764390c7834fc774ab14ee1222953d8ecea07 /net | |
parent | ec53c832ee90b86414ca243d0e6fdbb9cf5e413b (diff) | |
download | linux-c68df2e7be0c1238ea3c281fd744a204ef3b15a0.tar.gz linux-c68df2e7be0c1238ea3c281fd744a204ef3b15a0.tar.bz2 linux-c68df2e7be0c1238ea3c281fd744a204ef3b15a0.zip |
mac80211: allow using AP_LINK_PS with mac80211-generated TIM IE
In 46fa38e84b65 ("mac80211: allow software PS-Poll/U-APSD with
AP_LINK_PS"), Johannes allowed to use mac80211's code for handling
stations that go to PS or send PS-Poll / uAPSD trigger frames for
devices that enable RSS.
This means that mac80211 doesn't look at frames anymore but rather
relies on a notification that will come from the device when a PS
transition occurs or when a PS-Poll / trigger frame is detected by
the device.
iwlwifi will need this capability but still needs mac80211 to take
care of the TIM IE. Today, if a driver sets AP_LINK_PS, mac80211
will not update the TIM IE. Change mac80211 to check existence of
the set_tim driver callback rather than using AP_LINK_PS to decide
if the driver handles the TIM IE internally or not.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
[reword commit message a bit]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/sta_info.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c index 5e70fa52e1ff..1b1b28ff4fdb 100644 --- a/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c @@ -690,7 +690,7 @@ static void __sta_info_recalc_tim(struct sta_info *sta, bool ignore_pending) } /* No need to do anything if the driver does all */ - if (ieee80211_hw_check(&local->hw, AP_LINK_PS)) + if (!local->ops->set_tim) return; if (sta->dead) |