diff options
author | Rajeev Kumar Sirasanagandla <rsirasan@codeaurora.org> | 2017-02-02 18:27:04 +0530 |
---|---|---|
committer | Rajeev Kumar Sirasanagandla <rsirasan@codeaurora.org> | 2017-02-06 10:00:20 +0530 |
commit | e96faeafdc21603684266dee72250f12c6ec4ab8 (patch) | |
tree | 05b765510abe33cfea116037cadc5f21e3f4ce2a /net | |
parent | 0cf830b706fec1eed0875cd8a69842c4e3d876ae (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.c | 18 |
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; |