summary refs log tree commit diff
path: root/arch/arm/mm/proc-v6.S
diff options
context:
space:
mode:
authorTony Lindgren <tony@atomide.com>2005-10-19 23:00:56 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2005-10-19 23:00:56 +0100
commit67c5587ad4047041e4fb137628076388ede05281 (patch)
tree7766782d34a12fe84ba5468e6f0ed5dd77b7ca5d /arch/arm/mm/proc-v6.S
parentd1972efaf24e56c06b43c40c364f9377763c2e13 (diff)
downloadlinux-67c5587ad4047041e4fb137628076388ede05281.tar.gz
[ARM] 3024/1: Add cpu_v6_proc_fin
Patch from Tony Lindgren

Machine restart calls cpu_proc_fin() to clean and disable
cache, and turn off interrupts. This patch adds proper
cpu_v6_proc_fin.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mm/proc-v6.S')
-rw-r--r--arch/arm/mm/proc-v6.S9
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S
index caf3b19b167f..9bb5fff406fb 100644
--- a/arch/arm/mm/proc-v6.S
+++ b/arch/arm/mm/proc-v6.S
@@ -55,7 +55,14 @@ ENTRY(cpu_v6_proc_init)
 	mov	pc, lr
 
 ENTRY(cpu_v6_proc_fin)
-	mov	pc, lr
+	stmfd	sp!, {lr}
+	cpsid	if				@ disable interrupts
+	bl	v6_flush_kern_cache_all
+	mrc	p15, 0, r0, c1, c0, 0		@ ctrl register
+	bic	r0, r0, #0x1000			@ ...i............
+	bic	r0, r0, #0x0006			@ .............ca.
+	mcr	p15, 0, r0, c1, c0, 0		@ disable caches
+	ldmfd	sp!, {pc}
 
 /*
  *	cpu_v6_reset(loc)