summaryrefslogtreecommitdiff
path: root/drivers/staging/brcm80211
diff options
context:
space:
mode:
authorDowan Kim <dowan@broadcom.com>2011-03-04 17:47:43 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2011-03-07 13:46:37 -0800
commit9025c0faeefdbffd0b65e155876824e4e8de1723 (patch)
treef9490d7b52f19d69098a924e8b620e4203987f37 /drivers/staging/brcm80211
parent2d2322b269c2524996a259024f82c7e318719696 (diff)
staging: brcm80211: FIX for bug that prevents system from entering suspend state
The attempt to enter to suspend mode can be hindered when the network interface is disabled. When system enters the suspend mode with the network interface disabled, network layer calls ifdown() followed by cfg80211 layer calling wl_cfg80211_suspend() which is registered as suspend handler for cfg80211 layer. ifdown() call ultimately funnels down to __wl_cfg80211_down() call where WL_STATUS_READY bit is cleared via call to "clear_bit(WL_STATUS_READY, &wl->status)" But CHECK_SYS_UP()checks WL_STATUS_READY bit thinking it's not ready and returns -EIO from suspend handler which intern prevents entering into system suspend state CHECK_SYS_UP() is mainly used in the code path where upper layer would request certain wifi related activity to be performed by the firmware, where this calls helps to make sure our firmware would be in ready state to respond to those requests But in the case of wl_cfg80211_suspend() code path there is no need to check for firmware status for any reason Signed-off-by: Dowan Kim <dowan@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/brcm80211')
-rw-r--r--drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c b/drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c
index 1291124272f3..9e74beb0b64b 100644
--- a/drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c
+++ b/drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c
@@ -1977,8 +1977,6 @@ static s32 wl_cfg80211_suspend(struct wiphy *wiphy)
struct net_device *ndev = wl_to_ndev(wl);
s32 err = 0;
- CHECK_SYS_UP();
-
set_bit(WL_STATUS_SCAN_ABORTING, &wl->status);
wl_term_iscan(wl);
if (wl->scan_request) {