[2/2] ARM: s3c64xx: cpuidle - use timekeeping wrapper

Message ID 1337004377-17732-3-git-send-email-daniel.lezcano@linaro.org
State Accepted
Commit aba607d63c71ef9b185fc7cb9637ab70a2d88491
Headers show

Commit Message

Daniel Lezcano May 14, 2012, 2:06 p.m.
The timekeeping is computed from the cpuidle core if we set
the .en_core_tk_irqen flag. Let's use it and remove the duplicated
code.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
---
 arch/arm/mach-s3c64xx/cpuidle.c |   12 +-----------
 1 files changed, 1 insertions(+), 11 deletions(-)

Comments

Mark Brown May 17, 2012, 12:28 p.m. | #1
On Mon, May 14, 2012 at 04:06:17PM +0200, Daniel Lezcano wrote:
> The timekeeping is computed from the cpuidle core if we set
> the .en_core_tk_irqen flag. Let's use it and remove the duplicated
> code.

Tested-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

Patch

diff --git a/arch/arm/mach-s3c64xx/cpuidle.c b/arch/arm/mach-s3c64xx/cpuidle.c
index 2750e54..acb197c 100644
--- a/arch/arm/mach-s3c64xx/cpuidle.c
+++ b/arch/arm/mach-s3c64xx/cpuidle.c
@@ -27,12 +27,7 @@  static int s3c64xx_enter_idle(struct cpuidle_device *dev,
 			      struct cpuidle_driver *drv,
 			      int index)
 {
-	struct timeval before, after;
 	unsigned long tmp;
-	int idle_time;
-
-	local_irq_disable();
-	do_gettimeofday(&before);
 
 	/* Setup PWRCFG to enter idle mode */
 	tmp = __raw_readl(S3C64XX_PWR_CFG);
@@ -42,12 +37,6 @@  static int s3c64xx_enter_idle(struct cpuidle_device *dev,
 
 	cpu_do_idle();
 
-	do_gettimeofday(&after);
-	local_irq_enable();
-	idle_time = (after.tv_sec - before.tv_sec) * USEC_PER_SEC +
-		    (after.tv_usec - before.tv_usec);
-
-	dev->last_residency = idle_time;
 	return index;
 }
 
@@ -56,6 +45,7 @@  static DEFINE_PER_CPU(struct cpuidle_device, s3c64xx_cpuidle_device);
 static struct cpuidle_driver s3c64xx_cpuidle_driver = {
 	.name	= "s3c64xx_cpuidle",
 	.owner  = THIS_MODULE,
+	.en_core_tk_irqen = 1,
 	.states = {
 		{
 			.enter            = s3c64xx_enter_idle,