summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Frid <afrid@nvidia.com>2011-05-12 20:20:05 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:42:39 -0800
commitb8af16cc014cf77fa66e931b96e8cc1559ee8acb (patch)
treecb0d3b691fb7e94eb5d73d9d3a38f83028342714
parentb2cc90d880b2a5654377f49c4ba859b6b156b938 (diff)
ARM: tegra: power: Add suspend index to cpufreq table
Original-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> Rebase-Id: R81da4e2834a9ae209aadba17337d484f26f67ada
-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 630334df684a..c6c9ee432f00 100644
--- a/arch/arm/mach-tegra/clock.h
+++ b/arch/arm/mach-tegra/clock.h
@@ -265,6 +265,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 1d61146b50cc..4c15b3af35c5 100644
--- a/arch/arm/mach-tegra/cpu-tegra.c
+++ b/arch/arm/mach-tegra/cpu-tegra.c
@@ -52,6 +52,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);
@@ -454,8 +455,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
/*