aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-tegra/cpuidle-tegra20.c40
1 files changed, 20 insertions, 20 deletions
diff --git a/arch/arm/mach-tegra/cpuidle-tegra20.c b/arch/arm/mach-tegra/cpuidle-tegra20.c
index 825ced4f7a40..1ad1a67890eb 100644
--- a/arch/arm/mach-tegra/cpuidle-tegra20.c
+++ b/arch/arm/mach-tegra/cpuidle-tegra20.c
@@ -43,28 +43,32 @@ static atomic_t abort_barrier;
43static int tegra20_idle_lp2_coupled(struct cpuidle_device *dev, 43static int tegra20_idle_lp2_coupled(struct cpuidle_device *dev,
44 struct cpuidle_driver *drv, 44 struct cpuidle_driver *drv,
45 int index); 45 int index);
46#define TEGRA20_MAX_STATES 2
47#else
48#define TEGRA20_MAX_STATES 1
46#endif 49#endif
47 50
48static struct cpuidle_state tegra_idle_states[] = {
49 [0] = ARM_CPUIDLE_WFI_STATE_PWR(600),
50#ifdef CONFIG_PM_SLEEP
51 [1] = {
52 .enter = tegra20_idle_lp2_coupled,
53 .exit_latency = 5000,
54 .target_residency = 10000,
55 .power_usage = 0,
56 .flags = CPUIDLE_FLAG_TIME_VALID |
57 CPUIDLE_FLAG_COUPLED,
58 .name = "powered-down",
59 .desc = "CPU power gated",
60 },
61#endif
62};
63
64static struct cpuidle_driver tegra_idle_driver = { 51static struct cpuidle_driver tegra_idle_driver = {
65 .name = "tegra_idle", 52 .name = "tegra_idle",
66 .owner = THIS_MODULE, 53 .owner = THIS_MODULE,
67 .en_core_tk_irqen = 1, 54 .en_core_tk_irqen = 1,
55 .states = {
56 ARM_CPUIDLE_WFI_STATE_PWR(600),
57#ifdef CONFIG_PM_SLEEP
58 {
59 .enter = tegra20_idle_lp2_coupled,
60 .exit_latency = 5000,
61 .target_residency = 10000,
62 .power_usage = 0,
63 .flags = CPUIDLE_FLAG_TIME_VALID |
64 CPUIDLE_FLAG_COUPLED,
65 .name = "powered-down",
66 .desc = "CPU power gated",
67 },
68#endif
69 },
70 .state_count = TEGRA20_MAX_STATES,
71 .safe_state_index = 0,
68}; 72};
69 73
70static DEFINE_PER_CPU(struct cpuidle_device, tegra_idle_device); 74static DEFINE_PER_CPU(struct cpuidle_device, tegra_idle_device);
@@ -226,10 +230,6 @@ int __init tegra20_cpuidle_init(void)
226 tegra_tear_down_cpu = tegra20_tear_down_cpu; 230 tegra_tear_down_cpu = tegra20_tear_down_cpu;
227#endif 231#endif
228 232
229 drv->state_count = ARRAY_SIZE(tegra_idle_states);
230 memcpy(drv->states, tegra_idle_states,
231 drv->state_count * sizeof(drv->states[0]));
232
233 ret = cpuidle_register_driver(&tegra_idle_driver); 233 ret = cpuidle_register_driver(&tegra_idle_driver);
234 if (ret) { 234 if (ret) {
235 pr_err("CPUidle driver registration failed\n"); 235 pr_err("CPUidle driver registration failed\n");