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)
committerDmitry Shmidt <dimitrysh@google.com>
Tue, 26 Apr 2011 18:37:37 +0000 (11:37 -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 bbb15b93c0131257fb457c7ad539474a2b33bde3..3b21e41dd54b171f0bc34563f89d129bf7f450ef 100644 (file)
@@ -168,14 +168,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;
 }