diff options
author | Rahul Bansal <rbansal@nvidia.com> | 2011-07-25 14:31:43 +0530 |
---|---|---|
committer | Niket Sirsi <nsirsi@nvidia.com> | 2011-07-25 16:11:28 -0700 |
commit | 505e7035f0bd6545eb578d85382dc5fdf8c53f42 (patch) | |
tree | cf0c00bc2523deae22faea2324090b6b3ba61d88 | |
parent | ccf372807726b11ae47c0e9da780f0799701d50f (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.c | 6 |
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); |