ARM: tegra: cpuidle: replace LP3 with ARM_CPUIDLE_WFI_STATE
authorJoseph Lo <josephl@nvidia.com>
Mon, 8 Oct 2012 10:24:16 +0000 (18:24 +0800)
committerStephen Warren <swarren@nvidia.com>
Thu, 15 Nov 2012 22:08:28 +0000 (15:08 -0700)
The Tegra CPU idle LP3 state is doing ARM WFI only. So it's same with
the common ARM_CPUIDLE_WFI_STATE. Using it to replace LP3 now.

Signed-off-by: Joseph Lo <josephl@nvidia.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
arch/arm/mach-tegra/cpuidle.c

index 9a6f051b382e1516e7f01cd205d05c9114abb91c..4e0b07c7963c89230c0f8d4709a990cce10bc4da 100644 (file)
 
 #include <linux/kernel.h>
 #include <linux/module.h>
-#include <linux/cpu.h>
 #include <linux/cpuidle.h>
-#include <linux/hrtimer.h>
 
-#include <asm/proc-fns.h>
-
-static int tegra_idle_enter_lp3(struct cpuidle_device *dev,
-                               struct cpuidle_driver *drv, int index);
+#include <asm/cpuidle.h>
 
 struct cpuidle_driver tegra_idle_driver = {
        .name = "tegra_idle",
        .owner = THIS_MODULE,
+       .en_core_tk_irqen = 1,
        .state_count = 1,
        .states = {
-               [0] = {
-                       .enter                  = tegra_idle_enter_lp3,
-                       .exit_latency           = 10,
-                       .target_residency       = 10,
-                       .power_usage            = 600,
-                       .flags                  = CPUIDLE_FLAG_TIME_VALID,
-                       .name                   = "LP3",
-                       .desc                   = "CPU flow-controlled",
-               },
+               [0] = ARM_CPUIDLE_WFI_STATE_PWR(600),
        },
 };
 
 static DEFINE_PER_CPU(struct cpuidle_device, tegra_idle_device);
 
-static int tegra_idle_enter_lp3(struct cpuidle_device *dev,
-       struct cpuidle_driver *drv, int index)
-{
-       ktime_t enter, exit;
-       s64 us;
-
-       local_irq_disable();
-       local_fiq_disable();
-
-       enter = ktime_get();
-
-       cpu_do_idle();
-
-       exit = ktime_sub(ktime_get(), enter);
-       us = ktime_to_us(exit);
-
-       local_fiq_enable();
-       local_irq_enable();
-
-       dev->last_residency = us;
-
-       return index;
-}
-
 static int __init tegra_cpuidle_init(void)
 {
        int ret;