summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorRajeev Kumar Sirasanagandla <rsirasan@codeaurora.org>2017-02-02 18:27:04 +0530
committerRajeev Kumar Sirasanagandla <rsirasan@codeaurora.org>2017-02-06 10:00:20 +0530
commite96faeafdc21603684266dee72250f12c6ec4ab8 (patch)
tree05b765510abe33cfea116037cadc5f21e3f4ce2a /net
parent0cf830b706fec1eed0875cd8a69842c4e3d876ae (diff)
cfg80211: Do not disconnect on suspend
Qualcomm Technologies Inc vendor specific wlan driver (qcacld-3.0) internally supports wow mode and is enabled by default. Currently, cfg80211 subsystem and wpa_supplicant is not aware of qcacld-3.0 internal support for wowlan, due to which wpa_supplicant is issuing disconnect on suspend, resulting in wowlan failure. To fix this, avoid disconnect on suspend. CRs-Fixed: 2001614 Change-Id: I8e369fe61fd2715d2de9dcfb637ebb53f044b501 Signed-off-by: Rajeev Kumar Sirasanagandla <rsirasan@codeaurora.org>
Diffstat (limited to 'net')
-rw-r--r--net/wireless/sysfs.c18
1 files changed, 1 insertions, 17 deletions
diff --git a/net/wireless/sysfs.c b/net/wireless/sysfs.c
index e46469bc130f..460c4b0e343c 100644
--- a/net/wireless/sysfs.c
+++ b/net/wireless/sysfs.c
@@ -87,14 +87,6 @@ static int wiphy_uevent(struct device *dev, struct kobj_uevent_env *env)
}
#ifdef CONFIG_PM_SLEEP
-static void cfg80211_leave_all(struct cfg80211_registered_device *rdev)
-{
- struct wireless_dev *wdev;
-
- list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list)
- cfg80211_leave(rdev, wdev);
-}
-
static int wiphy_suspend(struct device *dev)
{
struct cfg80211_registered_device *rdev = dev_to_rdev(dev);
@@ -103,17 +95,9 @@ static int wiphy_suspend(struct device *dev)
rdev->suspend_at = get_seconds();
rtnl_lock();
- if (rdev->wiphy.registered) {
- if (!rdev->wiphy.wowlan_config)
- cfg80211_leave_all(rdev);
+ if (rdev->wiphy.registered)
if (rdev->ops->suspend)
- ret = rdev_suspend(rdev, rdev->wiphy.wowlan_config);
- if (ret == 1) {
- /* Driver refuse to configure wowlan */
- cfg80211_leave_all(rdev);
ret = rdev_suspend(rdev, NULL);
- }
- }
rtnl_unlock();
return ret;