ARM: Factor out common code from cpu_proc_fin()
All implementations of cpu_proc_fin() start by disabling interrupts and then flush caches. Rather than have every processors proc_fin() implementation do this, move it out into generic code - and move the cache flush past setup_mm_for_reboot() (so it can benefit from having caches still enabled.) This allows cpu_proc_fin() to become independent of the L1/L2 cache types, and eventually move the L2 cache flushing into the L2 support code. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
@@ -36,15 +36,11 @@ ENTRY(cpu_arm740_switch_mm)
|
||||
* cpu_arm740_proc_fin()
|
||||
*/
|
||||
ENTRY(cpu_arm740_proc_fin)
|
||||
stmfd sp!, {lr}
|
||||
mov ip, #PSR_F_BIT | PSR_I_BIT | SVC_MODE
|
||||
msr cpsr_c, ip
|
||||
mrc p15, 0, r0, c1, c0, 0
|
||||
bic r0, r0, #0x3f000000 @ bank/f/lock/s
|
||||
bic r0, r0, #0x0000000c @ w-buffer/cache
|
||||
mcr p15, 0, r0, c1, c0, 0 @ disable caches
|
||||
mcr p15, 0, r0, c7, c0, 0 @ invalidate cache
|
||||
ldmfd sp!, {pc}
|
||||
mov pc, lr
|
||||
|
||||
/*
|
||||
* cpu_arm740_reset(loc)
|
||||
|
||||
Reference in New Issue
Block a user