Commit 598e25fe authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt Committed by Linus Torvalds

[PATCH] ppc32: update cpu state save/restore

This patch updates the ppc32 cpu state save/restore code to deal with the
Motorola/Freescale MPC7447A, used, among others, on recent Apple laptops.
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 52b1e8a9
...@@ -292,13 +292,15 @@ _GLOBAL(__save_cpu_setup) ...@@ -292,13 +292,15 @@ _GLOBAL(__save_cpu_setup)
cmplwi cr2,r3,0x800c /* 7410 */ cmplwi cr2,r3,0x800c /* 7410 */
cmplwi cr3,r3,0x8001 /* 7455 */ cmplwi cr3,r3,0x8001 /* 7455 */
cmplwi cr4,r3,0x8002 /* 7457 */ cmplwi cr4,r3,0x8002 /* 7457 */
cmplwi cr5,r3,0x7000 /* 750FX */ cmplwi cr5,r3,0x8003 /* 7447A */
cmplwi cr6,r3,0x7000 /* 750FX */
/* cr1 is 7400 || 7410 */ /* cr1 is 7400 || 7410 */
cror 4*cr1+eq,4*cr1+eq,4*cr2+eq cror 4*cr1+eq,4*cr1+eq,4*cr2+eq
/* cr0 is 74xx */ /* cr0 is 74xx */
cror 4*cr0+eq,4*cr0+eq,4*cr3+eq cror 4*cr0+eq,4*cr0+eq,4*cr3+eq
cror 4*cr0+eq,4*cr0+eq,4*cr4+eq cror 4*cr0+eq,4*cr0+eq,4*cr4+eq
cror 4*cr0+eq,4*cr0+eq,4*cr1+eq cror 4*cr0+eq,4*cr0+eq,4*cr1+eq
cror 4*cr0+eq,4*cr0+eq,4*cr5+eq
bne 1f bne 1f
/* Backup 74xx specific regs */ /* Backup 74xx specific regs */
mfspr r4,SPRN_MSSCR0 mfspr r4,SPRN_MSSCR0
...@@ -316,7 +318,7 @@ _GLOBAL(__save_cpu_setup) ...@@ -316,7 +318,7 @@ _GLOBAL(__save_cpu_setup)
mfspr r4,SPRN_LDSTDB mfspr r4,SPRN_LDSTDB
stw r4,CS_LDSTDB(r5) stw r4,CS_LDSTDB(r5)
1: 1:
bne cr5,1f bne cr6,1f
/* Backup 750FX specific registers */ /* Backup 750FX specific registers */
mfspr r4,SPRN_HID1 mfspr r4,SPRN_HID1
stw r4,CS_HID1(r5) stw r4,CS_HID1(r5)
...@@ -359,13 +361,15 @@ _GLOBAL(__restore_cpu_setup) ...@@ -359,13 +361,15 @@ _GLOBAL(__restore_cpu_setup)
cmplwi cr2,r3,0x800c /* 7410 */ cmplwi cr2,r3,0x800c /* 7410 */
cmplwi cr3,r3,0x8001 /* 7455 */ cmplwi cr3,r3,0x8001 /* 7455 */
cmplwi cr4,r3,0x8002 /* 7457 */ cmplwi cr4,r3,0x8002 /* 7457 */
cmplwi cr5,r3,0x7000 /* 750FX */ cmplwi cr5,r3,0x8003 /* 7447A */
cmplwi cr6,r3,0x7000 /* 750FX */
/* cr1 is 7400 || 7410 */ /* cr1 is 7400 || 7410 */
cror 4*cr1+eq,4*cr1+eq,4*cr2+eq cror 4*cr1+eq,4*cr1+eq,4*cr2+eq
/* cr0 is 74xx */ /* cr0 is 74xx */
cror 4*cr0+eq,4*cr0+eq,4*cr3+eq cror 4*cr0+eq,4*cr0+eq,4*cr3+eq
cror 4*cr0+eq,4*cr0+eq,4*cr4+eq cror 4*cr0+eq,4*cr0+eq,4*cr4+eq
cror 4*cr0+eq,4*cr0+eq,4*cr1+eq cror 4*cr0+eq,4*cr0+eq,4*cr1+eq
cror 4*cr0+eq,4*cr0+eq,4*cr5+eq
bne 2f bne 2f
/* Restore 74xx specific regs */ /* Restore 74xx specific regs */
lwz r4,CS_MSSCR0(r5) lwz r4,CS_MSSCR0(r5)
...@@ -404,7 +408,7 @@ _GLOBAL(__restore_cpu_setup) ...@@ -404,7 +408,7 @@ _GLOBAL(__restore_cpu_setup)
mtspr SPRN_LDSTDB,r4 mtspr SPRN_LDSTDB,r4
isync isync
sync sync
2: bne cr5,1f 2: bne cr6,1f
/* Restore 750FX specific registers /* Restore 750FX specific registers
* that is restore HID2 on rev 2.x and PLL config & switch * that is restore HID2 on rev 2.x and PLL config & switch
* to PLL 0 on all * to PLL 0 on all
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment