summaryrefslogtreecommitdiff
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorOm Prakash Singh <omp@nvidia.com>2012-07-24 21:57:06 +0530
committerSimone Willett <swillett@nvidia.com>2012-07-30 20:46:41 -0700
commitda93e26a4e7aca61db257f8aae75df5740e57a3b (patch)
treeb86a884b38de42af0b2585301000aca32d9c04c7 /drivers/net/wireless
parent63e2ffbb48e8ad9639e3f01442802a326114b530 (diff)
net: wireless: bcmdhd: power off card when not in use
Power off the card when wifi is off and power up only when wifi is turned on Bug 1011349 Change-Id: I26a8188d932516c0490dec858acd9e8ea2c5adf8 Signed-off-by: Om Prakash Singh <omp@nvidia.com> Reviewed-on: http://git-master/r/118097 Reviewed-by: Pavan Kunapuli <pkunapuli@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Tested-by: Bharat Nihalani <bnihalani@nvidia.com> Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/bcmdhd/bcmsdh_sdmmc.c5
-rw-r--r--drivers/net/wireless/bcmdhd/bcmsdh_sdmmc_linux.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/wireless/bcmdhd/bcmsdh_sdmmc.c b/drivers/net/wireless/bcmdhd/bcmsdh_sdmmc.c
index e67eeca1f99c..ffcb49bda290 100644
--- a/drivers/net/wireless/bcmdhd/bcmsdh_sdmmc.c
+++ b/drivers/net/wireless/bcmdhd/bcmsdh_sdmmc.c
@@ -36,6 +36,7 @@
#include <linux/mmc/core.h>
#include <linux/mmc/card.h>
+#include <linux/mmc/host.h>
#include <linux/mmc/sdio_func.h>
#include <linux/mmc/sdio_ids.h>
@@ -1326,7 +1327,7 @@ sdioh_start(sdioh_info_t *si, int stage)
2.6.27. The implementation prior to that is buggy, and needs broadcom's
patch for it
*/
- if ((ret = sdio_reset_comm(gInstance->func[0]->card))) {
+ if ((ret = mmc_power_restore_host((gInstance->func[0])->card->host))) {
sd_err(("%s Failed, error = %d\n", __FUNCTION__, ret));
return ret;
}
@@ -1405,6 +1406,8 @@ sdioh_stop(sdioh_info_t *si)
#endif
bcmsdh_oob_intr_set(FALSE);
#endif /* !defined(OOB_INTR_ONLY) */
+ if (mmc_power_save_host((gInstance->func[0])->card->host))
+ sd_err(("%s card power save fail\n", __FUNCTION__));
}
else
sd_err(("%s Failed\n", __FUNCTION__));
diff --git a/drivers/net/wireless/bcmdhd/bcmsdh_sdmmc_linux.c b/drivers/net/wireless/bcmdhd/bcmsdh_sdmmc_linux.c
index 656953939b71..1a315b4dcf90 100644
--- a/drivers/net/wireless/bcmdhd/bcmsdh_sdmmc_linux.c
+++ b/drivers/net/wireless/bcmdhd/bcmsdh_sdmmc_linux.c
@@ -34,6 +34,7 @@
#include <linux/mmc/core.h>
#include <linux/mmc/card.h>
+#include <linux/mmc/host.h>
#include <linux/mmc/sdio_func.h>
#include <linux/mmc/sdio_ids.h>
@@ -131,6 +132,8 @@ static int bcmsdh_sdmmc_probe(struct sdio_func *func,
#endif
sd_trace(("F2 found, calling bcmsdh_probe_bcmdhd...\n"));
ret = bcmsdh_probe_bcmdhd(&func->dev);
+ if (mmc_power_save_host(func->card->host))
+ sd_err(("%s: card power save fail", __FUNCTION__));
}
return ret;