summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRahul Bansal <rbansal@nvidia.com>2011-07-25 14:31:43 +0530
committerNiket Sirsi <nsirsi@nvidia.com>2011-07-25 16:11:28 -0700
commit505e7035f0bd6545eb578d85382dc5fdf8c53f42 (patch)
treecf0c00bc2523deae22faea2324090b6b3ba61d88
parentccf372807726b11ae47c0e9da780f0799701d50f (diff)
drivers: net: wireless :bcm4329: disable sdio interrupts before wifi reset
during system suspend if wifi is on but not connected, android sets RTC alarm to wake up system after 2 mins of system suspend to turn off wifi. during turning off wifi it was observed that BCM4329 MAC is giving spurious sdio interrupts which was causing lockup issue (mmc_lock) between sdio interrupt handling process and wifi stop process, to fix this issue sdio interrupts are disabled before giving MAC reset from host. Bug 834444 Bug 798783 Bug 796147 Bug 797230 Bug 780047 Bug 818687 Change-Id: I696d70422be2866a18b05d85c34547ac847130d6 Reviewed-on: http://git-master/r/43014 Reviewed-by: Rakesh Kumar <krakesh@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Tested-by: Bharat Nihalani <bnihalani@nvidia.com>
-rw-r--r--drivers/net/wireless/bcm4329/dhd_sdio.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/wireless/bcm4329/dhd_sdio.c b/drivers/net/wireless/bcm4329/dhd_sdio.c
index da5189bbc1cf..21bc808b31a1 100644
--- a/drivers/net/wireless/bcm4329/dhd_sdio.c
+++ b/drivers/net/wireless/bcm4329/dhd_sdio.c
@@ -5758,6 +5758,12 @@ dhd_bus_devreset(dhd_pub_t *dhdp, uint8 flag)
/* Force flow control as protection when stop come before ifconfig_down */
dhd_txflowcontrol(bus->dhd, 0, ON);
#endif /* !defined(IGNORE_ETH0_DOWN) */
+
+#if !defined(OOB_INTR_ONLY)
+ /* to avoid supurious client interrupt during stop process */
+ bcmsdh_stop(bus->sdh);
+#endif /* !defined(OOB_INTR_ONLY) */
+
/* Expect app to have torn down any connection before calling */
/* Stop the bus, disable F2 */
dhd_bus_stop(bus, FALSE);