aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless/core.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2012-04-04 09:05:25 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-04-11 16:23:57 -0400
commit6d52563f2bc217cbdccb97068f5b6176352f01f2 (patch)
tree27fb48e360f153129fadb4dd5abdb4d91bb2e7eb /net/wireless/core.c
parentda951c2417ec1020d0d00813da36f38e395994e9 (diff)
cfg80211/mac80211: enable proper device_set_wakeup_enable handling
In WoWLAN, we only get the triggers when we actually get to suspend. As a consequence, drivers currently don't know that the device should enable wakeup. However, the device_set_wakeup_enable() API is intended to be called when the wakeup is enabled, not later when needed. Add a new set_wakeup() call to cfg80211 and mac80211 to allow drivers to properly call device_set_wakeup_enable. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/wireless/core.c')
-rw-r--r--net/wireless/core.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/wireless/core.c b/net/wireless/core.c
index ccdfed897651..59f4a7e7c092 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -708,6 +708,10 @@ void wiphy_unregister(struct wiphy *wiphy)
708 flush_work(&rdev->scan_done_wk); 708 flush_work(&rdev->scan_done_wk);
709 cancel_work_sync(&rdev->conn_work); 709 cancel_work_sync(&rdev->conn_work);
710 flush_work(&rdev->event_work); 710 flush_work(&rdev->event_work);
711
712 if (rdev->wowlan && rdev->ops->set_wakeup)
713 rdev->ops->set_wakeup(&rdev->wiphy, false);
714 cfg80211_rdev_free_wowlan(rdev);
711} 715}
712EXPORT_SYMBOL(wiphy_unregister); 716EXPORT_SYMBOL(wiphy_unregister);
713 717
@@ -720,7 +724,6 @@ void cfg80211_dev_free(struct cfg80211_registered_device *rdev)
720 mutex_destroy(&rdev->sched_scan_mtx); 724 mutex_destroy(&rdev->sched_scan_mtx);
721 list_for_each_entry_safe(scan, tmp, &rdev->bss_list, list) 725 list_for_each_entry_safe(scan, tmp, &rdev->bss_list, list)
722 cfg80211_put_bss(&scan->pub); 726 cfg80211_put_bss(&scan->pub);
723 cfg80211_rdev_free_wowlan(rdev);
724 kfree(rdev); 727 kfree(rdev);
725} 728}
726 729