|
@@ -104,13 +104,16 @@ static int wiphy_suspend(struct device *dev)
|
|
|
|
|
|
rtnl_lock();
|
|
rtnl_lock();
|
|
if (rdev->wiphy.registered) {
|
|
if (rdev->wiphy.registered) {
|
|
- if (!rdev->wiphy.wowlan_config)
|
|
|
|
|
|
+ if (!rdev->wiphy.wowlan_config) {
|
|
cfg80211_leave_all(rdev);
|
|
cfg80211_leave_all(rdev);
|
|
|
|
+ cfg80211_process_rdev_events(rdev);
|
|
|
|
+ }
|
|
if (rdev->ops->suspend)
|
|
if (rdev->ops->suspend)
|
|
ret = rdev_suspend(rdev, rdev->wiphy.wowlan_config);
|
|
ret = rdev_suspend(rdev, rdev->wiphy.wowlan_config);
|
|
if (ret == 1) {
|
|
if (ret == 1) {
|
|
/* Driver refuse to configure wowlan */
|
|
/* Driver refuse to configure wowlan */
|
|
cfg80211_leave_all(rdev);
|
|
cfg80211_leave_all(rdev);
|
|
|
|
+ cfg80211_process_rdev_events(rdev);
|
|
ret = rdev_suspend(rdev, NULL);
|
|
ret = rdev_suspend(rdev, NULL);
|
|
}
|
|
}
|
|
}
|
|
}
|