]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
ARM: sh7372: fix cache clean / invalidate order
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Fri, 28 Dec 2012 11:32:54 +0000 (12:32 +0100)
committerSimon Horman <horms+renesas@verge.net.au>
Fri, 25 Jan 2013 03:43:45 +0000 (12:43 +0900)
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>
arch/arm/mach-shmobile/sleep-sh7372.S

index 1d564674451d5c887adfffe45546cc1943388f57..a9df53b69ab8ead409fe78352f3c707f6a2ade1f 100644 (file)
@@ -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.