net: wireless: bcmdhd: Prevent working thread to run during suspend path
authorDmitry Shmidt <dimitrysh@google.com>
Mon, 13 Jun 2011 23:47:58 +0000 (16:47 -0700)
committerColin Cross <ccross@android.com>
Thu, 16 Jun 2011 00:20:54 +0000 (17:20 -0700)
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/dhd.h
drivers/net/wireless/bcmdhd/dhd_linux.c

index bb39913a4ec83a93ff368e98b92d189c4280e86c..9033da9f717a126cdf169ae67ac7de1dc53ecc1a 100644 (file)
@@ -198,7 +198,7 @@ typedef struct dhd_cmn {
                                wait_event_interruptible_timeout(a, FALSE, HZ/100); \
                        } \
                }       while (0)
-       #define DHD_PM_RESUME_WAIT(a)                   _DHD_PM_RESUME_WAIT(a, 30)
+       #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)
        #define DHD_PM_RESUME_RETURN            do { if (dhd_mmc_suspend) return; } while (0)
index 65d2bbdbdf8235b4216b70ecdc198b25e910f5b2..854da51d2570f23b4b99bc45ef5b480b24a4d496 100644 (file)
@@ -218,11 +218,17 @@ static int wifi_remove(struct platform_device *pdev)
 static int wifi_suspend(struct platform_device *pdev, pm_message_t state)
 {
        DHD_TRACE(("##> %s\n", __FUNCTION__));
+#if defined(OOB_INTR_ONLY)
+       bcmsdh_oob_intr_set(0);
+#endif /* (OOB_INTR_ONLY) */
        return 0;
 }
 static int wifi_resume(struct platform_device *pdev)
 {
        DHD_TRACE(("##> %s\n", __FUNCTION__));
+#if defined(OOB_INTR_ONLY)
+       bcmsdh_oob_intr_set(1);
+#endif /* (OOB_INTR_ONLY) */
        return 0;
 }
 static struct platform_driver wifi_device = {