diff options
author | Daniel Lezcano <daniel.lezcano@linaro.org> | 2013-03-21 08:21:32 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2013-03-31 19:10:27 -0400 |
commit | cb7094e848f7bcaa0a4cda3db4b232f08dbf5b78 (patch) | |
tree | eebae922096831afcb850f5d9f228044aac84095 | |
parent | b60e6a0eb0273132cbb60a9806abf5f47a4aee1c (diff) |
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>
-rw-r--r-- | arch/arm/mach-omap2/cpuidle44xx.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/arch/arm/mach-omap2/cpuidle44xx.c b/arch/arm/mach-omap2/cpuidle44xx.c index d639aef0deda..fe0e02545b23 100644 --- a/arch/arm/mach-omap2/cpuidle44xx.c +++ b/arch/arm/mach-omap2/cpuidle44xx.c | |||
@@ -82,7 +82,6 @@ static int omap4_enter_idle_coupled(struct cpuidle_device *dev, | |||
82 | int index) | 82 | int index) |
83 | { | 83 | { |
84 | struct omap4_idle_statedata *cx = &omap4_idle_data[index]; | 84 | struct omap4_idle_statedata *cx = &omap4_idle_data[index]; |
85 | int cpu_id = smp_processor_id(); | ||
86 | 85 | ||
87 | local_fiq_disable(); | 86 | local_fiq_disable(); |
88 | 87 | ||
@@ -109,8 +108,6 @@ static int omap4_enter_idle_coupled(struct cpuidle_device *dev, | |||
109 | } | 108 | } |
110 | } | 109 | } |
111 | 110 | ||
112 | clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &cpu_id); | ||
113 | |||
114 | /* | 111 | /* |
115 | * Call idle CPU PM enter notifier chain so that | 112 | * Call idle CPU PM enter notifier chain so that |
116 | * VFP and per CPU interrupt context is saved. | 113 | * VFP and per CPU interrupt context is saved. |
@@ -152,8 +149,6 @@ static int omap4_enter_idle_coupled(struct cpuidle_device *dev, | |||
152 | if (omap4_mpuss_read_prev_context_state()) | 149 | if (omap4_mpuss_read_prev_context_state()) |
153 | cpu_cluster_pm_exit(); | 150 | cpu_cluster_pm_exit(); |
154 | 151 | ||
155 | clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &cpu_id); | ||
156 | |||
157 | fail: | 152 | fail: |
158 | cpuidle_coupled_parallel_barrier(dev, &abort_barrier); | 153 | cpuidle_coupled_parallel_barrier(dev, &abort_barrier); |
159 | cpu_done[dev->cpu] = false; | 154 | cpu_done[dev->cpu] = false; |
@@ -193,7 +188,8 @@ static struct cpuidle_driver omap4_idle_driver = { | |||
193 | /* C2 - CPU0 OFF + CPU1 OFF + MPU CSWR */ | 188 | /* C2 - CPU0 OFF + CPU1 OFF + MPU CSWR */ |
194 | .exit_latency = 328 + 440, | 189 | .exit_latency = 328 + 440, |
195 | .target_residency = 960, | 190 | .target_residency = 960, |
196 | .flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_COUPLED, | 191 | .flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_COUPLED | |
192 | CPUIDLE_FLAG_TIMER_STOP, | ||
197 | .enter = omap4_enter_idle_coupled, | 193 | .enter = omap4_enter_idle_coupled, |
198 | .name = "C2", | 194 | .name = "C2", |
199 | .desc = "MPUSS CSWR", | 195 | .desc = "MPUSS CSWR", |
@@ -202,7 +198,8 @@ static struct cpuidle_driver omap4_idle_driver = { | |||
202 | /* C3 - CPU0 OFF + CPU1 OFF + MPU OSWR */ | 198 | /* C3 - CPU0 OFF + CPU1 OFF + MPU OSWR */ |
203 | .exit_latency = 460 + 518, | 199 | .exit_latency = 460 + 518, |
204 | .target_residency = 1100, | 200 | .target_residency = 1100, |
205 | .flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_COUPLED, | 201 | .flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_COUPLED | |
202 | CPUIDLE_FLAG_TIMER_STOP, | ||
206 | .enter = omap4_enter_idle_coupled, | 203 | .enter = omap4_enter_idle_coupled, |
207 | .name = "C3", | 204 | .name = "C3", |
208 | .desc = "MPUSS OSWR", | 205 | .desc = "MPUSS OSWR", |