net: wireless: bcm4329: Prevent working thread to run during suspend path
authorDmitry Shmidt <dimitrysh@google.com>
Tue, 26 Apr 2011 18:36:07 +0000 (11:36 -0700)
committerColin Cross <ccross@android.com>
Tue, 14 Jun 2011 16:09:57 +0000 (09:09 -0700)
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcm4329/dhd.h
drivers/net/wireless/bcm4329/dhd_linux.c

index 7b1d076763ef70aa0f896f12588d6fe1a701f996..573f425527ff3f0503b5c2db1f82a66a1b60174b 100644 (file)
@@ -179,7 +179,7 @@ typedef struct dhd_pub {
                                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 8270a13fb8406acc60d3ca294a22b13961fbee44..1df2d76b2402cbeedf72f662180e432b96e79d72 100644 (file)
@@ -169,14 +169,21 @@ static int wifi_remove(struct platform_device *pdev)
        up(&wifi_control_sem);
        return 0;
 }
+
 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;
 }