]> Pileus Git - ~andy/linux/commitdiff
powerpc: Move initial mfspr LPCR out of __init_LPCR
authorMichael Neuling <mikey@neuling.org>
Mon, 5 Nov 2012 03:40:18 +0000 (14:40 +1100)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 15 Nov 2012 04:08:05 +0000 (15:08 +1100)
We want to change what's initially set in the LPCR, so start by taking the move
from LPCR out of the function and into the caller.

Signed-off-by: Matt Evans <matt@ozlabs.org>
Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/cpu_setup_power.S

index a92101d14b4e09fe73685a1d6ccff07068fc68a8..52dd03396c5dd388f951650d7643cee01b898223 100644 (file)
@@ -27,6 +27,7 @@ _GLOBAL(__setup_cpu_power7)
        beqlr
        li      r0,0
        mtspr   SPRN_LPID,r0
+       mfspr   r3,SPRN_LPCR
        bl      __init_LPCR
        bl      __init_TLB
        mtlr    r11
@@ -39,6 +40,7 @@ _GLOBAL(__restore_cpu_power7)
        beqlr
        li      r0,0
        mtspr   SPRN_LPID,r0
+       mfspr   r3,SPRN_LPCR
        bl      __init_LPCR
        bl      __init_TLB
        mtlr    r11
@@ -51,6 +53,7 @@ _GLOBAL(__setup_cpu_power8)
        beqlr
        li      r0,0
        mtspr   SPRN_LPID,r0
+       mfspr   r3,SPRN_LPCR
        bl      __init_LPCR
        bl      __init_TLB
        mtlr    r11
@@ -63,6 +66,7 @@ _GLOBAL(__restore_cpu_power8)
        beqlr
        li      r0,0
        mtspr   SPRN_LPID,r0
+       mfspr   r3,SPRN_LPCR
        bl      __init_LPCR
        bl      __init_TLB
        mtlr    r11
@@ -81,6 +85,7 @@ __init_hvmode_206:
 
 __init_LPCR:
        /* Setup a sane LPCR:
+        *   Called with initial LPCR in R3
         *
         *   LPES = 0b01 (HSRR0/1 used for 0x500)
         *   PECE = 0b111
@@ -91,7 +96,6 @@ __init_LPCR:
         *
         * Other bits untouched for now
         */
-       mfspr   r3,SPRN_LPCR
        li      r5,1
        rldimi  r3,r5, LPCR_LPES_SH, 64-LPCR_LPES_SH-2
        ori     r3,r3,(LPCR_PECE0|LPCR_PECE1|LPCR_PECE2)