Skip to content

Commit

Permalink
ARM: omap: Consolidate OMAP4 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 6da45dc commit d13e926
Showing 1 changed file with 3 additions and 18 deletions.
21 changes: 3 additions & 18 deletions arch/arm/mach-omap2/cpuidle44xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,15 +62,9 @@ static int omap4_enter_idle(struct cpuidle_device *dev,
{
struct omap4_idle_statedata *cx =
cpuidle_get_statedata(&dev->states_usage[index]);
struct timespec ts_preidle, ts_postidle, ts_idle;
u32 cpu1_state;
int idle_time;
int cpu_id = smp_processor_id();

/* Used to keep track of the total time in idle */
getnstimeofday(&ts_preidle);

local_irq_disable();
local_fiq_disable();

/*
Expand Down Expand Up @@ -128,26 +122,17 @@ static int omap4_enter_idle(struct cpuidle_device *dev,
if (index > 0)
clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &cpu_id);

getnstimeofday(&ts_postidle);
ts_idle = timespec_sub(ts_postidle, ts_preidle);

local_irq_enable();
local_fiq_enable();

idle_time = ts_idle.tv_nsec / NSEC_PER_USEC + ts_idle.tv_sec * \
USEC_PER_SEC;

/* Update cpuidle counters */
dev->last_residency = idle_time;

return index;
}

DEFINE_PER_CPU(struct cpuidle_device, omap4_idle_dev);

struct cpuidle_driver omap4_idle_driver = {
.name = "omap4_idle",
.owner = THIS_MODULE,
.name = "omap4_idle",
.owner = THIS_MODULE,
.en_core_tk_irqen = 1,
};

static inline void _fill_cstate(struct cpuidle_driver *drv,
Expand Down

0 comments on commit d13e926

Please sign in to comment.