aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/head_fsl_booke.S
diff options
context:
space:
mode:
authorGrant Likely <grant.likely@secretlab.ca>2012-07-25 00:31:09 -0400
committerGrant Likely <grant.likely@secretlab.ca>2012-07-25 00:34:40 -0400
commit6aeea3ecc33b1f36dbc3b80461d15a7052ae424f (patch)
treebbd273e3e0ca76094aed8e9c77e5adfe2b07f779 /arch/powerpc/kernel/head_fsl_booke.S
parent9844a5524ec532aee826c35e3031637c7fc8287b (diff)
parentbdc0077af574800d24318b6945cf2344e8dbb050 (diff)
Merge remote-tracking branch 'origin' into irqdomain/next
Diffstat (limited to 'arch/powerpc/kernel/head_fsl_booke.S')
-rw-r--r--arch/powerpc/kernel/head_fsl_booke.S25
1 files changed, 7 insertions, 18 deletions
diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/kernel/head_fsl_booke.S
index 1f4434a38608..0f59863c3ade 100644
--- a/arch/powerpc/kernel/head_fsl_booke.S
+++ b/arch/powerpc/kernel/head_fsl_booke.S
@@ -192,7 +192,7 @@ _ENTRY(__early_start)
192 li r0,0 192 li r0,0
193 stwu r0,THREAD_SIZE-STACK_FRAME_OVERHEAD(r1) 193 stwu r0,THREAD_SIZE-STACK_FRAME_OVERHEAD(r1)
194 194
195 rlwinm r22,r1,0,0,31-THREAD_SHIFT /* current thread_info */ 195 CURRENT_THREAD_INFO(r22, r1)
196 stw r24, TI_CPU(r22) 196 stw r24, TI_CPU(r22)
197 197
198 bl early_init 198 bl early_init
@@ -556,8 +556,10 @@ END_FTR_SECTION_IFSET(CPU_FTR_EMB_HV)
556 /* SPE Unavailable */ 556 /* SPE Unavailable */
557 START_EXCEPTION(SPEUnavailable) 557 START_EXCEPTION(SPEUnavailable)
558 NORMAL_EXCEPTION_PROLOG(SPE_UNAVAIL) 558 NORMAL_EXCEPTION_PROLOG(SPE_UNAVAIL)
559 bne load_up_spe 559 beq 1f
560 addi r3,r1,STACK_FRAME_OVERHEAD 560 bl load_up_spe
561 b fast_exception_return
5621: addi r3,r1,STACK_FRAME_OVERHEAD
561 EXC_XFER_EE_LITE(0x2010, KernelSPE) 563 EXC_XFER_EE_LITE(0x2010, KernelSPE)
562#else 564#else
563 EXCEPTION(0x2020, SPE_UNAVAIL, SPEUnavailable, \ 565 EXCEPTION(0x2020, SPE_UNAVAIL, SPEUnavailable, \
@@ -778,7 +780,7 @@ tlb_write_entry:
778/* Note that the SPE support is closely modeled after the AltiVec 780/* Note that the SPE support is closely modeled after the AltiVec
779 * support. Changes to one are likely to be applicable to the 781 * support. Changes to one are likely to be applicable to the
780 * other! */ 782 * other! */
781load_up_spe: 783_GLOBAL(load_up_spe)
782/* 784/*
783 * Disable SPE for the task which had SPE previously, 785 * Disable SPE for the task which had SPE previously,
784 * and save its SPE registers in its thread_struct. 786 * and save its SPE registers in its thread_struct.
@@ -826,20 +828,7 @@ load_up_spe:
826 subi r4,r5,THREAD 828 subi r4,r5,THREAD
827 stw r4,last_task_used_spe@l(r3) 829 stw r4,last_task_used_spe@l(r3)
828#endif /* !CONFIG_SMP */ 830#endif /* !CONFIG_SMP */
829 /* restore registers and return */ 831 blr
8302: REST_4GPRS(3, r11)
831 lwz r10,_CCR(r11)
832 REST_GPR(1, r11)
833 mtcr r10
834 lwz r10,_LINK(r11)
835 mtlr r10
836 REST_GPR(10, r11)
837 mtspr SPRN_SRR1,r9
838 mtspr SPRN_SRR0,r12
839 REST_GPR(9, r11)
840 REST_GPR(12, r11)
841 lwz r11,GPR11(r11)
842 rfi
843 832
844/* 833/*
845 * SPE unavailable trap from kernel - print a message, but let 834 * SPE unavailable trap from kernel - print a message, but let