cfg80211: make WoWLAN configuration available to drivers
Make the current WoWLAN configuration available to drivers at runtime. This isn't really useful for the normal WoWLAN behaviour and accessing it can also be racy, but drivers may use it for testing the WoWLAN device behaviour while the host stays up & running to observe the device. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
@@ -91,6 +91,7 @@ static void cfg80211_leave_all(struct cfg80211_registered_device *rdev)
|
||||
cfg80211_leave(rdev, wdev);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
static int wiphy_suspend(struct device *dev, pm_message_t state)
|
||||
{
|
||||
struct cfg80211_registered_device *rdev = dev_to_rdev(dev);
|
||||
@@ -100,10 +101,10 @@ static int wiphy_suspend(struct device *dev, pm_message_t state)
|
||||
|
||||
rtnl_lock();
|
||||
if (rdev->wiphy.registered) {
|
||||
if (!rdev->wowlan)
|
||||
if (!rdev->wiphy.wowlan_config)
|
||||
cfg80211_leave_all(rdev);
|
||||
if (rdev->ops->suspend)
|
||||
ret = rdev_suspend(rdev, rdev->wowlan);
|
||||
ret = rdev_suspend(rdev, rdev->wiphy.wowlan_config);
|
||||
if (ret == 1) {
|
||||
/* Driver refuse to configure wowlan */
|
||||
cfg80211_leave_all(rdev);
|
||||
@@ -132,6 +133,7 @@ static int wiphy_resume(struct device *dev)
|
||||
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
static const void *wiphy_namespace(struct device *d)
|
||||
{
|
||||
@@ -146,8 +148,10 @@ struct class ieee80211_class = {
|
||||
.dev_release = wiphy_dev_release,
|
||||
.dev_attrs = ieee80211_dev_attrs,
|
||||
.dev_uevent = wiphy_uevent,
|
||||
#ifdef CONFIG_PM
|
||||
.suspend = wiphy_suspend,
|
||||
.resume = wiphy_resume,
|
||||
#endif
|
||||
.ns_type = &net_ns_type_operations,
|
||||
.namespace = wiphy_namespace,
|
||||
};
|
||||
|
Reference in New Issue
Block a user