summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorNaveen Kumar Arepalli <naveenk@nvidia.com>2013-07-22 16:20:09 +0530
committerRiham Haidar <rhaidar@nvidia.com>2013-07-31 14:18:58 -0700
commit12cc4d1f5ad4afd8bcc145bb23e570fcdc97dd1b (patch)
tree693b8739f4b9e0efb519265704beda21ffe3b85d /drivers
parentfe6a0c27677aeb7189c1b9bb85c224abbb994fe8 (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')
-rw-r--r--drivers/mmc/host/sdhci-tegra.c23
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;
}