summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Frid <afrid@nvidia.com>2011-05-12 20:20:05 -0700
committerVarun Colbert <vcolbert@nvidia.com>2011-05-17 11:53:27 -0700
commite1e2a385c8015a8d7ef1ee8d79421a7a3bff129c (patch)
tree5e8c4dbcd6649c740cf66a86911f26781b5615d7
parentdda707a20776c053918b39e6e235338c16bc73bb (diff)
ARM: tegra: power: Add suspend index to cpufreq table
Change-Id: I7bbe018f3786b9683cc9d4189fdcaadb9098f3f1 Reviewed-on: http://git-master/r/31456 Reviewed-by: Aleksandr Frid <afrid@nvidia.com> Tested-by: Aleksandr Frid <afrid@nvidia.com> Reviewed-by: Diwakar Tundlam <dtundlam@nvidia.com> Tested-by: Diwakar Tundlam <dtundlam@nvidia.com> Reviewed-by: Scott Williams <scwilliams@nvidia.com>
-rw-r--r--arch/arm/mach-tegra/clock.h1
-rw-r--r--arch/arm/mach-tegra/cpu-tegra.c6
2 files changed, 5 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/clock.h b/arch/arm/mach-tegra/clock.h
index 3eb218777a87..50c159f4d9dc 100644
--- a/arch/arm/mach-tegra/clock.h
+++ b/arch/arm/mach-tegra/clock.h
@@ -226,6 +226,7 @@ struct tegra_cpufreq_table_data {
struct cpufreq_frequency_table *freq_table;
int throttle_lowest_index;
int throttle_highest_index;
+ int suspend_index;
};
struct tegra_cpufreq_table_data *tegra_cpufreq_table_get(void);
unsigned long tegra_emc_to_cpu_ratio(unsigned long cpu_rate);
diff --git a/arch/arm/mach-tegra/cpu-tegra.c b/arch/arm/mach-tegra/cpu-tegra.c
index 86c283d6f20e..b91a9e48188c 100644
--- a/arch/arm/mach-tegra/cpu-tegra.c
+++ b/arch/arm/mach-tegra/cpu-tegra.c
@@ -54,6 +54,7 @@ static struct clk *emc_clk;
static unsigned long target_cpu_speed[CONFIG_NR_CPUS];
static DEFINE_MUTEX(tegra_cpu_lock);
static bool is_suspended;
+static int suspend_index;
unsigned int tegra_getspeed(unsigned int cpu);
static int tegra_update_cpu_speed(unsigned long rate);
@@ -456,8 +457,8 @@ static int tegra_pm_notify(struct notifier_block *nb, unsigned long event,
if (event == PM_SUSPEND_PREPARE) {
is_suspended = true;
pr_info("Tegra cpufreq suspend: setting frequency to %d kHz\n",
- freq_table[0].frequency);
- tegra_update_cpu_speed(freq_table[0].frequency);
+ freq_table[suspend_index].frequency);
+ tegra_update_cpu_speed(freq_table[suspend_index].frequency);
} else if (event == PM_POST_SUSPEND) {
is_suspended = false;
tegra_cpu_edp_init(true);
@@ -539,6 +540,7 @@ static int __init tegra_cpufreq_init(void)
struct tegra_cpufreq_table_data *table_data =
tegra_cpufreq_table_get();
BUG_ON(!table_data);
+ suspend_index = table_data->suspend_index;
#ifdef CONFIG_TEGRA_THERMAL_THROTTLE
/*