summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/sleep.S
diff options
context:
space:
mode:
authorsatya popuri <spopuri@nvidia.com>2012-02-28 15:57:35 -0800
committerDan Willemsen <dwillemsen@nvidia.com>2012-03-22 23:51:12 -0700
commit1700894b6604d0fba342b2a2b8d3e10427b90d37 (patch)
treedcce25f0bd7733703becbe283d530b5ef56da625 /arch/arm/mach-tegra/sleep.S
parentff3402d0eb712f8b90f36bd4ed6181546da5802a (diff)
tegra: cpuidle: remove flow-controller programming
bug 937980 Remove some legacy flow-controller programming from LP3 entry and exit paths. Also remove data synchronization barrier instruction after wfi to improve scaling across cores. Signed-off-by: satya popuri <spopuri@nvidia.com> Reviewed-on: http://git-master/r/86451 (cherry picked from commit f88ee65418126365fc10af3d3771bba5d2e41d57) Change-Id: I7bca4328044ef477bc4bec9c9af9d30d8815d6ce Reviewed-on: http://git-master/r/87212 Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Tested-by: Bharat Nihalani <bnihalani@nvidia.com> Reviewed-by: Satya Popuri <spopuri@nvidia.com> Rebase-Id: R017b9cf3d72b1f09be6ff339dafd102829edcadf
Diffstat (limited to 'arch/arm/mach-tegra/sleep.S')
-rw-r--r--arch/arm/mach-tegra/sleep.S16
1 files changed, 2 insertions, 14 deletions
diff --git a/arch/arm/mach-tegra/sleep.S b/arch/arm/mach-tegra/sleep.S
index b60cf5acc35a..0cdce54e9da5 100644
--- a/arch/arm/mach-tegra/sleep.S
+++ b/arch/arm/mach-tegra/sleep.S
@@ -106,27 +106,15 @@ ENDPROC(tegra_pen_unlock)
/*
* tegra_cpu_wfi
*
- * puts current CPU in clock-gated wfi using the flow controller
+ * puts current CPU in wfi
+ * CPU core clock-gates itself during wfi
*
* corrupts r0-r3
* must be called with MMU on
*/
ENTRY(tegra_cpu_wfi)
- cpu_id r0
- cpu_to_halt_reg r1, r0
- cpu_to_csr_reg r2, r0
- mov32 r0, TEGRA_FLOW_CTRL_VIRT
- mov r3, #FLOW_CTRL_CSR_INTR_FLAG | FLOW_CTRL_CSR_EVENT_FLAG
- str r3, [r0, r2] @ clear event & interrupt status
- mov r3, #FLOW_CTRL_WAIT_FOR_INTERRUPT | FLOW_CTRL_JTAG_RESUME
- str r3, [r0, r1] @ put flow controller in wait irq mode
dsb
wfi
- mov r3, #0
- str r3, [r0, r1] @ clear flow controller halt status
- mov r3, #FLOW_CTRL_CSR_INTR_FLAG | FLOW_CTRL_CSR_EVENT_FLAG
- str r3, [r0, r2] @ clear event & interrupt status
- dsb
mov pc, lr
ENDPROC(tegra_cpu_wfi)