In MLO, expect the driver fully handles powersave handling,
including tracking whether or not a beacon was received,
the DTIM period, etc.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
return -EINVAL;
if (WARN_ON(ieee80211_hw_check(hw, SUPPORTS_PS) &&
- !ieee80211_hw_check(hw, SUPPORTS_DYNAMIC_PS)))
+ (!ieee80211_hw_check(hw, SUPPORTS_DYNAMIC_PS) ||
+ ieee80211_hw_check(hw, PS_NULLFUNC_STACK))))
return -EINVAL;
if (WARN_ON(!ieee80211_hw_check(hw, MFP_CAPABLE)))
static bool ieee80211_powersave_allowed(struct ieee80211_sub_if_data *sdata)
{
+ struct ieee80211_local *local = sdata->local;
struct ieee80211_if_managed *mgd = &sdata->u.mgd;
struct sta_info *sta = NULL;
bool authorized = false;
if (mgd->flags & IEEE80211_STA_CONNECTION_POLL)
return false;
- if (!sdata->deflink.u.mgd.have_beacon)
+ if (!(local->hw.wiphy->flags & WIPHY_FLAG_SUPPORTS_MLO) &&
+ !sdata->deflink.u.mgd.have_beacon)
return false;
rcu_read_lock();