summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/bcm4329/dhd_sdio.c
diff options
context:
space:
mode:
authorRahul Bansal <rbansal@nvidia.com>2010-12-13 16:51:46 +0530
committerBharat Nihalani <bnihalani@nvidia.com>2010-12-28 23:58:40 -0800
commitf52b89b7405466ddefb65fa9337f535612e8281b (patch)
treed0262fe83cbcb82800965234b70cf03d587b8067 /drivers/net/wireless/bcm4329/dhd_sdio.c
parent878b4b36f9a2b116197c495d3a39fd9309beadc3 (diff)
[bcm4329] WOW support in BCM driver
Making sure that Rx pkt is acknowledged and sent to network interface by wifi driver before system goes in suspend. BUG ID 767438 Change-Id: Ie88176ec11aa1d2fe4253d9b0472d13a4742d300 Reviewed-on: http://git-master/r/12703 Reviewed-by: Rakesh Kumar <krakesh@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Tested-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'drivers/net/wireless/bcm4329/dhd_sdio.c')
-rw-r--r--drivers/net/wireless/bcm4329/dhd_sdio.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/wireless/bcm4329/dhd_sdio.c b/drivers/net/wireless/bcm4329/dhd_sdio.c
index ac46ca91eaeb..8915857cf2c8 100644
--- a/drivers/net/wireless/bcm4329/dhd_sdio.c
+++ b/drivers/net/wireless/bcm4329/dhd_sdio.c
@@ -58,6 +58,10 @@
#include <dhdioctl.h>
#include <sdiovar.h>
+#ifdef CONFIG_HAS_WAKELOCK
+#include <linux/wakelock.h>
+#endif
+
#ifdef DHD_DEBUG
#include <hndrte_cons.h>
#endif /* DHD_DEBUG */
@@ -4182,6 +4186,9 @@ dhdsdio_dpc(dhd_bus_t *bus)
/* Handle host mailbox indication */
if (intstatus & I_HMB_HOST_INT) {
+#ifdef CONFIG_HAS_WAKELOCK
+ wake_lock_timeout(&bus->dhd->wow_wakelock, 3*HZ);
+#endif
intstatus &= ~I_HMB_HOST_INT;
intstatus |= dhdsdio_hostmail(bus);
}
@@ -4214,6 +4221,9 @@ dhdsdio_dpc(dhd_bus_t *bus)
/* On frame indication, read available frames */
if (PKT_AVAILABLE()) {
+#ifdef CONFIG_HAS_WAKELOCK
+ wake_lock_timeout(&bus->dhd->wow_wakelock, 3*HZ);
+#endif
framecnt = dhdsdio_readframes(bus, rxlimit, &rxdone);
if (rxdone || bus->rxskip)
intstatus &= ~I_HMB_FRAME_IND;