aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFu, Zhonghui <zhonghui.fu@linux.intel.com>2015-09-19 10:40:14 +0800
committerchrome-bot <chrome-bot@chromium.org>2015-10-08 13:51:22 -0700
commit8df5a3d4a4f01a605fedc50e98e45c27fb006cd3 (patch)
tree9b4e086d98d5a12a78349f20fd7f2fdf58a85ddf
parent5c944b6e917000c072a7be1e7be598defea31b8b (diff)
downloadchromeos-master.tar.gz
UPSTREAM: net/wireless: enable wiphy device to suspend/resume asynchronouslyHEADmaster
Now, PM core supports asynchronous suspend/resume mode for devices during system suspend/resume, and the power state transition of one device may be completed in separate kernel thread. PM core ensures all power state transition timing dependency between devices. This patch enables wiphy device to suspend/resume asynchronously. This can take advantage of multicore and improve system suspend/resume speed. Comparison of power_Resume test results (by cywang): w/o patch seconds_system_resume_kernel{perf}=0.879189 seconds_system_resume{perf}=1.31215405464 w/ patch seconds_system_resume_kernel{perf}=0.634252 seconds_system_resume{perf}=1.07773995399 This shows an improvement of overall resume time of ~230 ms. BUG=chrome-os-partner:46185 TEST=run the power_Resume test with and without this patch and check that the total wake-up time is shorter with this patch. Change-Id: I5c09b78ffcc4c315ddc698a6e95b60174b7865b5 Signed-off-by: Zhonghui Fu <zhonghui.fu@linux.intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> (cherry-picked from 9f0e13546ef5773b7059b531a667ec47a5f897ee) Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Reviewed-on: https://chromium-review.googlesource.com/304337 Reviewed-by: Sameer Nanda <snanda@chromium.org>
-rw-r--r--net/wireless/core.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/wireless/core.c b/net/wireless/core.c
index ec6c16ece1fa5a..bdd5ff9193633b 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -347,6 +347,7 @@ struct wiphy *wiphy_new(const struct cfg80211_ops *ops, int sizeof_priv)
device_initialize(&rdev->wiphy.dev);
rdev->wiphy.dev.class = &ieee80211_class;
rdev->wiphy.dev.platform_data = rdev;
+ device_enable_async_suspend(&rdev->wiphy.dev);
#ifdef CONFIG_CFG80211_DEFAULT_PS
rdev->wiphy.flags |= WIPHY_FLAG_PS_ON_BY_DEFAULT;