diff options
author | Dmitry Shmidt <dimitrysh@google.com> | 2011-12-13 01:16:31 +0800 |
---|---|---|
committer | Andy Green <andy.green@linaro.org> | 2012-01-09 10:38:42 +0800 |
commit | 1a4f6cc2c1d5dd14f0f5e7ac4947526fc2225b8c (patch) | |
tree | 113c5aaf127f314e31dcaa991dcc8e335ec1f6ed /drivers/net/wireless/brcm80211/bcmdhd/dhd.h | |
parent | a1837bf3f6c4f740d849415381798b7b18ad8018 (diff) |
net: wireless: bcmdhd: Improve suspend/resume processing
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Diffstat (limited to 'drivers/net/wireless/brcm80211/bcmdhd/dhd.h')
-rw-r--r-- | drivers/net/wireless/brcm80211/bcmdhd/dhd.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/wireless/brcm80211/bcmdhd/dhd.h b/drivers/net/wireless/brcm80211/bcmdhd/dhd.h index e4732612759..c87f6cf37d9 100644 --- a/drivers/net/wireless/brcm80211/bcmdhd/dhd.h +++ b/drivers/net/wireless/brcm80211/bcmdhd/dhd.h @@ -235,11 +235,12 @@ typedef struct dhd_cmn { #define DHD_PM_RESUME_WAIT_INIT(a) DECLARE_WAIT_QUEUE_HEAD(a); #define _DHD_PM_RESUME_WAIT(a, b) do {\ int retry = 0; \ - smp_mb(); \ + SMP_RD_BARRIER_DEPENDS(); \ while (dhd_mmc_suspend && retry++ != b) { \ - wait_event_interruptible_timeout(a, FALSE, HZ/100); \ + SMP_RD_BARRIER_DEPENDS(); \ + wait_event_interruptible_timeout(a, !dhd_mmc_suspend, HZ/100); \ } \ - } while (0) + } while (0) #define DHD_PM_RESUME_WAIT(a) _DHD_PM_RESUME_WAIT(a, 200) #define DHD_PM_RESUME_WAIT_FOREVER(a) _DHD_PM_RESUME_WAIT(a, ~0) #define DHD_PM_RESUME_RETURN_ERROR(a) do { if (dhd_mmc_suspend) return a; } while (0) |