summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavan Kunapuli <pkunapuli@nvidia.com>2010-05-06 17:17:51 +0530
committerGary King <gking@nvidia.com>2010-05-06 10:00:46 -0700
commit519e7e72f9940cd294a7ad1331025e2d76532aff (patch)
tree1223c24e063a813b776c77f65a6bba179cb80dbc
parent2ce41affad573db9c1252a3d123ff9542faa4873 (diff)
Power rail enable/disable for sd suspend/resume
As part of suspend/resume for sd/emmc cards, added power rail enable/disable feature to save power drawn from the rail.Verified SD card, emmc and wifi functionality after device wakes up from LP0. Bug 671029: SDHCI Suspend/Resume optimization Tested on: Android whistler+harmony. Change-Id: I2d25feb8c7c0930912aa4091f8def9d37ad9eb81 Reviewed-on: http://git-master/r/1214 Reviewed-by: Gary King <gking@nvidia.com> Tested-by: Gary King <gking@nvidia.com>
-rwxr-xr-xdrivers/mmc/host/sdhci-tegra.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c
index 89db0cb17b31..a278af5e75f5 100755
--- a/drivers/mmc/host/sdhci-tegra.c
+++ b/drivers/mmc/host/sdhci-tegra.c
@@ -281,7 +281,6 @@ int __init tegra_sdhci_probe(struct platform_device *pdev)
goto fail;
}
NvRmModuleReset(s_hRmGlobal, ModId);
- NvOdmSdioResume(host->hSdioHandle);
sdhost->hw_name = "tegra";
sdhost->ops = &tegra_sdhci_ops;
@@ -376,7 +375,6 @@ static int __devexit tegra_sdhci_remove(struct platform_device *pdev)
}
#if defined(CONFIG_PM)
-
static int tegra_sdhci_suspend(struct platform_device *pdev, pm_message_t state)
{
int ret = 0;
@@ -388,6 +386,7 @@ static int tegra_sdhci_suspend(struct platform_device *pdev, pm_message_t state)
ret = sdhci_suspend_host(t_sdhci->sdhost,state);
if (ret)
pr_err("sdhci_suspend_host failed with error %d\n", ret);
+ NvOdmSdioSuspend(t_sdhci->hSdioHandle);
}
return ret;
@@ -404,6 +403,7 @@ static int tegra_sdhci_resume(struct platform_device *pdev)
ret = tegra_sdhci_set_controller_clk(t_sdhci, NV_TRUE);
if (ret)
pr_err("tegra_sdhci_resume:tegra_sdhci_set_clock failed with error %d\n", ret);
+ NvOdmSdioResume(t_sdhci->hSdioHandle);
ret = sdhci_resume_host(t_sdhci->sdhost);
if (ret)
pr_err("sdhci_resume_host failed with error %d\n", ret);