diff options
author | Santosh Shilimkar <santosh.shilimkar@ti.com> | 2013-02-11 08:59:45 -0500 |
---|---|---|
committer | Santosh Shilimkar <santosh.shilimkar@ti.com> | 2013-03-28 03:25:58 -0400 |
commit | 6b85638b83caac7bae9ffa202391882a9ad4388f (patch) | |
tree | 646d1e7d1241346b394d69d442b7fa296e5d4058 /arch/arm | |
parent | f98d5fe8079cc4830e4ce22585055822119da5c8 (diff) |
ARM: OMAP2+: PM: Remove bogus fiq_[enable/disable] tuple
On OMAP platform, FIQ is reserved for secure environment only. If at all
the FIQ needs to be disabled, it involves going through security
API call. Hence the local_fiq_[enable/disable]() in the OMAP code is bogus.
On GP devices too, the fiq is disabled for non-secure software.
So just get rid of it.
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-omap2/cpuidle34xx.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-omap2/cpuidle44xx.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-omap2/pm24xx.c | 11 | ||||
-rw-r--r-- | arch/arm/mach-omap2/pm34xx.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-omap2/pm44xx.c | 4 |
5 files changed, 4 insertions, 30 deletions
diff --git a/arch/arm/mach-omap2/cpuidle34xx.c b/arch/arm/mach-omap2/cpuidle34xx.c index 80392fca86c6..06f567faf993 100644 --- a/arch/arm/mach-omap2/cpuidle34xx.c +++ b/arch/arm/mach-omap2/cpuidle34xx.c | |||
@@ -107,8 +107,6 @@ static int __omap3_enter_idle(struct cpuidle_device *dev, | |||
107 | { | 107 | { |
108 | struct omap3_idle_statedata *cx = &omap3_idle_data[index]; | 108 | struct omap3_idle_statedata *cx = &omap3_idle_data[index]; |
109 | 109 | ||
110 | local_fiq_disable(); | ||
111 | |||
112 | if (omap_irq_pending() || need_resched()) | 110 | if (omap_irq_pending() || need_resched()) |
113 | goto return_sleep_time; | 111 | goto return_sleep_time; |
114 | 112 | ||
@@ -143,7 +141,6 @@ static int __omap3_enter_idle(struct cpuidle_device *dev, | |||
143 | clkdm_allow_idle(mpu_pd->pwrdm_clkdms[0]); | 141 | clkdm_allow_idle(mpu_pd->pwrdm_clkdms[0]); |
144 | 142 | ||
145 | return_sleep_time: | 143 | return_sleep_time: |
146 | local_fiq_enable(); | ||
147 | 144 | ||
148 | return index; | 145 | return index; |
149 | } | 146 | } |
diff --git a/arch/arm/mach-omap2/cpuidle44xx.c b/arch/arm/mach-omap2/cpuidle44xx.c index d639aef0deda..944e64aad7e5 100644 --- a/arch/arm/mach-omap2/cpuidle44xx.c +++ b/arch/arm/mach-omap2/cpuidle44xx.c | |||
@@ -70,10 +70,7 @@ static int omap4_enter_idle_simple(struct cpuidle_device *dev, | |||
70 | struct cpuidle_driver *drv, | 70 | struct cpuidle_driver *drv, |
71 | int index) | 71 | int index) |
72 | { | 72 | { |
73 | local_fiq_disable(); | ||
74 | omap_do_wfi(); | 73 | omap_do_wfi(); |
75 | local_fiq_enable(); | ||
76 | |||
77 | return index; | 74 | return index; |
78 | } | 75 | } |
79 | 76 | ||
@@ -84,8 +81,6 @@ static int omap4_enter_idle_coupled(struct cpuidle_device *dev, | |||
84 | struct omap4_idle_statedata *cx = &omap4_idle_data[index]; | 81 | struct omap4_idle_statedata *cx = &omap4_idle_data[index]; |
85 | int cpu_id = smp_processor_id(); | 82 | int cpu_id = smp_processor_id(); |
86 | 83 | ||
87 | local_fiq_disable(); | ||
88 | |||
89 | /* | 84 | /* |
90 | * CPU0 has to wait and stay ON until CPU1 is OFF state. | 85 | * CPU0 has to wait and stay ON until CPU1 is OFF state. |
91 | * This is necessary to honour hardware recommondation | 86 | * This is necessary to honour hardware recommondation |
@@ -158,8 +153,6 @@ 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; |
160 | 155 | ||
161 | local_fiq_enable(); | ||
162 | |||
163 | return index; | 156 | return index; |
164 | } | 157 | } |
165 | 158 | ||
diff --git a/arch/arm/mach-omap2/pm24xx.c b/arch/arm/mach-omap2/pm24xx.c index b59d93908341..ce956b0a7ba4 100644 --- a/arch/arm/mach-omap2/pm24xx.c +++ b/arch/arm/mach-omap2/pm24xx.c | |||
@@ -200,22 +200,17 @@ static int omap2_can_sleep(void) | |||
200 | 200 | ||
201 | static void omap2_pm_idle(void) | 201 | static void omap2_pm_idle(void) |
202 | { | 202 | { |
203 | local_fiq_disable(); | ||
204 | |||
205 | if (!omap2_can_sleep()) { | 203 | if (!omap2_can_sleep()) { |
206 | if (omap_irq_pending()) | 204 | if (omap_irq_pending()) |
207 | goto out; | 205 | return; |
208 | omap2_enter_mpu_retention(); | 206 | omap2_enter_mpu_retention(); |
209 | goto out; | 207 | return; |
210 | } | 208 | } |
211 | 209 | ||
212 | if (omap_irq_pending()) | 210 | if (omap_irq_pending()) |
213 | goto out; | 211 | return; |
214 | 212 | ||
215 | omap2_enter_full_retention(); | 213 | omap2_enter_full_retention(); |
216 | |||
217 | out: | ||
218 | local_fiq_enable(); | ||
219 | } | 214 | } |
220 | 215 | ||
221 | static void __init prcm_setup_regs(void) | 216 | static void __init prcm_setup_regs(void) |
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index 2d93d8b23835..c01859398b54 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c | |||
@@ -346,19 +346,14 @@ void omap_sram_idle(void) | |||
346 | 346 | ||
347 | static void omap3_pm_idle(void) | 347 | static void omap3_pm_idle(void) |
348 | { | 348 | { |
349 | local_fiq_disable(); | ||
350 | |||
351 | if (omap_irq_pending()) | 349 | if (omap_irq_pending()) |
352 | goto out; | 350 | return; |
353 | 351 | ||
354 | trace_cpu_idle(1, smp_processor_id()); | 352 | trace_cpu_idle(1, smp_processor_id()); |
355 | 353 | ||
356 | omap_sram_idle(); | 354 | omap_sram_idle(); |
357 | 355 | ||
358 | trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id()); | 356 | trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id()); |
359 | |||
360 | out: | ||
361 | local_fiq_enable(); | ||
362 | } | 357 | } |
363 | 358 | ||
364 | #ifdef CONFIG_SUSPEND | 359 | #ifdef CONFIG_SUSPEND |
@@ -757,14 +752,12 @@ int __init omap3_pm_init(void) | |||
757 | pr_err("Memory allocation failed when allocating for secure sram context\n"); | 752 | pr_err("Memory allocation failed when allocating for secure sram context\n"); |
758 | 753 | ||
759 | local_irq_disable(); | 754 | local_irq_disable(); |
760 | local_fiq_disable(); | ||
761 | 755 | ||
762 | omap_dma_global_context_save(); | 756 | omap_dma_global_context_save(); |
763 | omap3_save_secure_ram_context(); | 757 | omap3_save_secure_ram_context(); |
764 | omap_dma_global_context_restore(); | 758 | omap_dma_global_context_restore(); |
765 | 759 | ||
766 | local_irq_enable(); | 760 | local_irq_enable(); |
767 | local_fiq_enable(); | ||
768 | } | 761 | } |
769 | 762 | ||
770 | omap3_save_scratchpad_contents(); | 763 | omap3_save_scratchpad_contents(); |
diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c index ea62e75ef21d..9e9095c65129 100644 --- a/arch/arm/mach-omap2/pm44xx.c +++ b/arch/arm/mach-omap2/pm44xx.c | |||
@@ -131,11 +131,7 @@ static int __init pwrdms_setup(struct powerdomain *pwrdm, void *unused) | |||
131 | */ | 131 | */ |
132 | static void omap_default_idle(void) | 132 | static void omap_default_idle(void) |
133 | { | 133 | { |
134 | local_fiq_disable(); | ||
135 | |||
136 | omap_do_wfi(); | 134 | omap_do_wfi(); |
137 | |||
138 | local_fiq_enable(); | ||
139 | } | 135 | } |
140 | 136 | ||
141 | /** | 137 | /** |