aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/wireless/brcm80211/bcmdhd/dhd.h
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2011-12-13 01:16:31 +0800
committerAndy Green <andy.green@linaro.org>2012-01-09 10:38:42 +0800
commit1a4f6cc2c1d5dd14f0f5e7ac4947526fc2225b8c (patch)
tree113c5aaf127f314e31dcaa991dcc8e335ec1f6ed /drivers/net/wireless/brcm80211/bcmdhd/dhd.h
parenta1837bf3f6c4f740d849415381798b7b18ad8018 (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.h7
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)