diff options
author | Johannes Berg <johannes.berg@intel.com> | 2013-01-10 18:28:01 -0500 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-01-16 09:19:01 -0500 |
commit | 8f21b0adfe95907926da1bb0bcd3382b13d0143d (patch) | |
tree | 8eeedd57fd51a88baa61d38ef5602689eea3d675 /net/mac80211/util.c | |
parent | d888130a024d1d1e8b2c3d0c9841a218fc0aed9e (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.c | 7 |
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 */ |