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)
committermgross <mark.gross@intel.com>
Wed, 9 Nov 2011 20:07:29 +0000 (12:07 -0800)
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
drivers/net/wireless/bcm4329/dhd.h
drivers/net/wireless/bcm4329/dhd_linux.c

index 7b1d076..573f425 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 8270a13..1df2d76 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;
 }