mac80211: allow driver to impose WoWLAN restrictions
If the driver can't support WoWLAN in the current state, this patch allows it to return 1 from the suspend callback to do the normal deconfiguration instead of using suspend/resume calls. Note that if it does this, resume won't be called. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:

committed by
John W. Linville

parent
304e21bbea
commit
2b4562dfd6
@@ -72,15 +72,19 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
|
||||
local->wowlan = wowlan && local->open_count;
|
||||
if (local->wowlan) {
|
||||
int err = drv_suspend(local, wowlan);
|
||||
if (err) {
|
||||
if (err < 0) {
|
||||
local->quiescing = false;
|
||||
return err;
|
||||
} else if (err > 0) {
|
||||
WARN_ON(err != 1);
|
||||
local->wowlan = false;
|
||||
} else {
|
||||
list_for_each_entry(sdata, &local->interfaces, list) {
|
||||
cancel_work_sync(&sdata->work);
|
||||
ieee80211_quiesce(sdata);
|
||||
}
|
||||
goto suspend;
|
||||
}
|
||||
list_for_each_entry(sdata, &local->interfaces, list) {
|
||||
cancel_work_sync(&sdata->work);
|
||||
ieee80211_quiesce(sdata);
|
||||
}
|
||||
goto suspend;
|
||||
}
|
||||
|
||||
/* disable keys */
|
||||
|
Reference in New Issue
Block a user