diff options
author | Joseph Lo <josephl@nvidia.com> | 2012-10-08 18:24:16 +0800 |
---|---|---|
committer | Stephen Warren <swarren@nvidia.com> | 2012-11-15 15:08:28 -0700 |
commit | d5db9a44229058ddfe4773aaefa5a465344d7b10 (patch) | |
tree | 48a1cf4fad52f89dc3383dc4ecbf9e7751de6024 /arch | |
parent | d1d3b978f67c2c000f9d91387cffa630e738d529 (diff) |
ARM: tegra: cpuidle: replace LP3 with ARM_CPUIDLE_WFI_STATE
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>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-tegra/cpuidle.c | 42 |
1 files changed, 3 insertions, 39 deletions
diff --git a/arch/arm/mach-tegra/cpuidle.c b/arch/arm/mach-tegra/cpuidle.c index 9a6f051b382..4e0b07c7963 100644 --- a/arch/arm/mach-tegra/cpuidle.c +++ b/arch/arm/mach-tegra/cpuidle.c @@ -23,58 +23,22 @@ #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; |