aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/util.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-01-10 18:28:01 -0500
committerJohannes Berg <johannes.berg@intel.com>2013-01-16 09:19:01 -0500
commit8f21b0adfe95907926da1bb0bcd3382b13d0143d (patch)
tree8eeedd57fd51a88baa61d38ef5602689eea3d675 /net/mac80211/util.c
parentd888130a024d1d1e8b2c3d0c9841a218fc0aed9e (diff)
mac80211: call restart complete at wowlan resume time
When the driver's resume function can't completely restore the configuration in the device, it returns 1 from the callback which will be treated like a HW restart request, but done directly. In this case, also call the driver's restart_complete() function so it can finish the reconfiguration there. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/util.c')
-rw-r--r--net/mac80211/util.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index 0ad51e14f3c8..7519018ff71a 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -1358,9 +1358,9 @@ int ieee80211_reconfig(struct ieee80211_local *local)
1358 struct ieee80211_chanctx *ctx; 1358 struct ieee80211_chanctx *ctx;
1359 struct sta_info *sta; 1359 struct sta_info *sta;
1360 int res, i; 1360 int res, i;
1361#ifdef CONFIG_PM
1362 bool reconfig_due_to_wowlan = false; 1361 bool reconfig_due_to_wowlan = false;
1363 1362
1363#ifdef CONFIG_PM
1364 if (local->suspended) 1364 if (local->suspended)
1365 local->resuming = true; 1365 local->resuming = true;
1366 1366
@@ -1656,10 +1656,11 @@ int ieee80211_reconfig(struct ieee80211_local *local)
1656 * If this is for hw restart things are still running. 1656 * If this is for hw restart things are still running.
1657 * We may want to change that later, however. 1657 * We may want to change that later, however.
1658 */ 1658 */
1659 if (!local->suspended) { 1659 if (!local->suspended || reconfig_due_to_wowlan)
1660 drv_restart_complete(local); 1660 drv_restart_complete(local);
1661
1662 if (!local->suspended)
1661 return 0; 1663 return 0;
1662 }
1663 1664
1664#ifdef CONFIG_PM 1665#ifdef CONFIG_PM
1665 /* first set suspended false, then resuming */ 1666 /* first set suspended false, then resuming */