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
committerSimone Willett <swillett@nvidia.com>2012-03-02 23:19:21 -0800
commit7f6476008164909d05baffe497c953af4f3f4c2f (patch)
treef7777180f808cad9a0b649e92cf520eceb25c542 /arch/arm/mach-tegra/sleep.S
parent3b49c5b5cffdfc52ab480c4d79cb6aab4309cae1 (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>
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 c4628e9691bb..dff63a166575 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)