diff options
author | Pavan Kunapuli <pkunapuli@nvidia.com> | 2010-05-06 17:17:51 +0530 |
---|---|---|
committer | Gary King <gking@nvidia.com> | 2010-05-06 10:00:46 -0700 |
commit | 519e7e72f9940cd294a7ad1331025e2d76532aff (patch) | |
tree | 1223c24e063a813b776c77f65a6bba179cb80dbc /drivers | |
parent | 2ce41affad573db9c1252a3d123ff9542faa4873 (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>
Diffstat (limited to 'drivers')
-rwxr-xr-x | drivers/mmc/host/sdhci-tegra.c | 4 |
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); |