Skip to content

Commit

Permalink
ARM: sh7372: fix cache clean / invalidate order
Browse files Browse the repository at this point in the history
According to the Cortex A8 TRM the L2 cache should be first cleaned and
then disabled. Fix the swapped order on sh7372.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Reviewed-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
  • Loading branch information
Guennadi Liakhovetski authored and Simon Horman committed Jan 25, 2013
1 parent 529a7b3 commit 9916152
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions arch/arm/mach-shmobile/sleep-sh7372.S
Original file line number Diff line number Diff line change
Expand Up @@ -59,16 +59,18 @@ sh7372_do_idle_sysc:
mcr p15, 0, r0, c1, c0, 0
isb

/*
* Clean and invalidate data cache again.
*/
ldr r1, kernel_flush
blx r1

/* disable L2 cache in the aux control register */
mrc p15, 0, r10, c1, c0, 1
bic r10, r10, #2
mcr p15, 0, r10, c1, c0, 1
isb

/*
* Invalidate data cache again.
*/
ldr r1, kernel_flush
blx r1
/*
* The kernel doesn't interwork: v7_flush_dcache_all in particluar will
* always return in Thumb state when CONFIG_THUMB2_KERNEL is enabled.
Expand Down

0 comments on commit 9916152

Please sign in to comment.