Skip to content

Commit

Permalink
ARM: shmobile: Consolidate time keeping and irq enable
Browse files Browse the repository at this point in the history
Enable core cpuidle timekeeping and irq enabling and remove that
handling from this code.

Signed-off-by: Robert Lee <rob.lee@linaro.org>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Reviewed-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Acked-by: Jean Pihet <j-pihet@ti.com>
Signed-off-by: Len Brown <len.brown@intel.com>
  • Loading branch information
Robert Lee authored and Len Brown committed Mar 21, 2012
1 parent d13e926 commit ee807dd
Showing 1 changed file with 7 additions and 24 deletions.
31 changes: 7 additions & 24 deletions arch/arm/mach-shmobile/cpuidle.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#include <linux/module.h>
#include <linux/err.h>
#include <asm/system.h>
#include <asm/cpuidle.h>
#include <asm/io.h>

static void shmobile_enter_wfi(void)
Expand All @@ -29,37 +30,19 @@ static int shmobile_cpuidle_enter(struct cpuidle_device *dev,
struct cpuidle_driver *drv,
int index)
{
ktime_t before, after;

before = ktime_get();

local_irq_disable();
local_fiq_disable();

shmobile_cpuidle_modes[index]();

local_irq_enable();
local_fiq_enable();

after = ktime_get();
dev->last_residency = ktime_to_ns(ktime_sub(after, before)) >> 10;

return index;
}

static struct cpuidle_device shmobile_cpuidle_dev;
static struct cpuidle_driver shmobile_cpuidle_driver = {
.name = "shmobile_cpuidle",
.owner = THIS_MODULE,
.states[0] = {
.name = "C1",
.desc = "WFI",
.exit_latency = 1,
.target_residency = 1 * 2,
.flags = CPUIDLE_FLAG_TIME_VALID,
},
.safe_state_index = 0, /* C1 */
.state_count = 1,
.name = "shmobile_cpuidle",
.owner = THIS_MODULE,
.en_core_tk_irqen = 1,
.states[0] = ARM_CPUIDLE_WFI_STATE,
.safe_state_index = 0, /* C1 */
.state_count = 1,
};

void (*shmobile_cpuidle_setup)(struct cpuidle_driver *drv);
Expand Down

0 comments on commit ee807dd

Please sign in to comment.