mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-12 21:44:06 +08:00
cpuidle / omap4 : use CPUIDLE_FLAG_TIMER_STOP flag
Use the CPUIDLE_FLAG_TIMER_STOP and let the cpuidle framework to handle the CLOCK_EVT_NOTIFY_BROADCAST_ENTER/EXIT when entering this state. Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
b60e6a0eb0
commit
cb7094e848
@ -82,7 +82,6 @@ static int omap4_enter_idle_coupled(struct cpuidle_device *dev,
|
|||||||
int index)
|
int index)
|
||||||
{
|
{
|
||||||
struct omap4_idle_statedata *cx = &omap4_idle_data[index];
|
struct omap4_idle_statedata *cx = &omap4_idle_data[index];
|
||||||
int cpu_id = smp_processor_id();
|
|
||||||
|
|
||||||
local_fiq_disable();
|
local_fiq_disable();
|
||||||
|
|
||||||
@ -109,8 +108,6 @@ static int omap4_enter_idle_coupled(struct cpuidle_device *dev,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &cpu_id);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Call idle CPU PM enter notifier chain so that
|
* Call idle CPU PM enter notifier chain so that
|
||||||
* VFP and per CPU interrupt context is saved.
|
* VFP and per CPU interrupt context is saved.
|
||||||
@ -152,8 +149,6 @@ static int omap4_enter_idle_coupled(struct cpuidle_device *dev,
|
|||||||
if (omap4_mpuss_read_prev_context_state())
|
if (omap4_mpuss_read_prev_context_state())
|
||||||
cpu_cluster_pm_exit();
|
cpu_cluster_pm_exit();
|
||||||
|
|
||||||
clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &cpu_id);
|
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
cpuidle_coupled_parallel_barrier(dev, &abort_barrier);
|
cpuidle_coupled_parallel_barrier(dev, &abort_barrier);
|
||||||
cpu_done[dev->cpu] = false;
|
cpu_done[dev->cpu] = false;
|
||||||
@ -193,7 +188,8 @@ static struct cpuidle_driver omap4_idle_driver = {
|
|||||||
/* C2 - CPU0 OFF + CPU1 OFF + MPU CSWR */
|
/* C2 - CPU0 OFF + CPU1 OFF + MPU CSWR */
|
||||||
.exit_latency = 328 + 440,
|
.exit_latency = 328 + 440,
|
||||||
.target_residency = 960,
|
.target_residency = 960,
|
||||||
.flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_COUPLED,
|
.flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_COUPLED |
|
||||||
|
CPUIDLE_FLAG_TIMER_STOP,
|
||||||
.enter = omap4_enter_idle_coupled,
|
.enter = omap4_enter_idle_coupled,
|
||||||
.name = "C2",
|
.name = "C2",
|
||||||
.desc = "MPUSS CSWR",
|
.desc = "MPUSS CSWR",
|
||||||
@ -202,7 +198,8 @@ static struct cpuidle_driver omap4_idle_driver = {
|
|||||||
/* C3 - CPU0 OFF + CPU1 OFF + MPU OSWR */
|
/* C3 - CPU0 OFF + CPU1 OFF + MPU OSWR */
|
||||||
.exit_latency = 460 + 518,
|
.exit_latency = 460 + 518,
|
||||||
.target_residency = 1100,
|
.target_residency = 1100,
|
||||||
.flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_COUPLED,
|
.flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_COUPLED |
|
||||||
|
CPUIDLE_FLAG_TIMER_STOP,
|
||||||
.enter = omap4_enter_idle_coupled,
|
.enter = omap4_enter_idle_coupled,
|
||||||
.name = "C3",
|
.name = "C3",
|
||||||
.desc = "MPUSS OSWR",
|
.desc = "MPUSS OSWR",
|
||||||
|
Loading…
Reference in New Issue
Block a user