diff options
author | Naveen Kumar Arepalli <naveenk@nvidia.com> | 2013-07-22 16:20:09 +0530 |
---|---|---|
committer | Riham Haidar <rhaidar@nvidia.com> | 2013-07-31 14:18:58 -0700 |
commit | 12cc4d1f5ad4afd8bcc145bb23e570fcdc97dd1b (patch) | |
tree | 693b8739f4b9e0efb519265704beda21ffe3b85d /drivers/mmc | |
parent | fe6a0c27677aeb7189c1b9bb85c224abbb994fe8 (diff) |
mmc: tegra: Don't skip tuning for 2nd core voltage
Even if nominal_vcore_tun_done, override_vcore_tun_done are set
don't skip tuning for 2nd core voltage.
Bug 1330031
Reviewed-on: http://git-master/r/242764
(cherry picked from commit 57b7008d0ad3cfdea888416e8b1db3ebb0c7cda7)
Signed-off-by: Naveen Kumar Arepalli <naveenk@nvidia.com>
Change-Id: I0f2b0b755b82ecb8d584d00f5b627fb3c82f05cb
Reviewed-on: http://git-master/r/254829
Reviewed-by: Riham Haidar <rhaidar@nvidia.com>
Tested-by: Riham Haidar <rhaidar@nvidia.com>
Diffstat (limited to 'drivers/mmc')
-rw-r--r-- | drivers/mmc/host/sdhci-tegra.c | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c index 2d31216a4c07..f6c216ac44ab 100644 --- a/drivers/mmc/host/sdhci-tegra.c +++ b/drivers/mmc/host/sdhci-tegra.c @@ -191,7 +191,7 @@ static struct freq_tuning_params tuning_params[TUNING_FREQ_COUNT] = { [TUNING_LOW_FREQ] = { .freq_hz = 82000000, .nr_voltages = 1, - .voltages = {ULONG_MAX}, + .voltages = {1250}, }, [TUNING_HIGH_FREQ] = { .freq_hz = 156000000, @@ -1619,24 +1619,15 @@ static int sdhci_tegra_execute_tuning(struct sdhci_host *sdhci, u32 opcode) voltage = tuning_params[freq_band].voltages[i]; if (voltage > tegra_host->nominal_vcore_mv) { voltage = tegra_host->nominal_vcore_mv; - if (tuning_data->nominal_vcore_tuning_done) { + if ((tuning_data->nominal_vcore_tuning_done) && + (tuning_params[freq_band].nr_voltages == 1)) { spin_lock(&sdhci->lock); continue; } - } - if (voltage < tegra_host->min_vcore_override_mv) { + } else if (voltage < tegra_host->min_vcore_override_mv) { voltage = tegra_host->min_vcore_override_mv; - /* - * If nominal and min override voltages are equal, set - * one shot tuning and mark min override tuning as - * done. - */ - if (voltage == tegra_host->nominal_vcore_mv) { - tuning_data->one_shot_tuning = true; - tuning_data->overide_vcore_tuning_done = true; - } - - if (tuning_data->overide_vcore_tuning_done) { + if ((tuning_data->overide_vcore_tuning_done) && + (tuning_params[freq_band].nr_voltages == 1)) { spin_lock(&sdhci->lock); continue; } @@ -1672,7 +1663,7 @@ skip_vcore_override: if (!vcore_override_failed) { if (voltage == tegra_host->nominal_vcore_mv) tuning_data->nominal_vcore_tuning_done = true; - else if (voltage >= tegra_host->min_vcore_override_mv) + if (voltage >= tegra_host->min_vcore_override_mv) tuning_data->overide_vcore_tuning_done = true; } |