OSDN Git Service

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)
committerDmitry Shmidt <dimitrysh@google.com>
Tue, 14 Jun 2011 00:48:07 +0000 (17:48 -0700)
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcmdhd/dhd.h
drivers/net/wireless/bcmdhd/dhd_linux.c

index bb39913..9033da9 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 65d2bbd..854da51 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 = {