diff options
author | Mihai Caraman <mihai.caraman@freescale.com> | 2014-08-20 09:09:04 -0400 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2014-09-22 04:11:31 -0400 |
commit | 2b2695a8d85593ec0253f7fdbeea1e18f0f9e5e2 (patch) | |
tree | 8e337873f22e3911164c97827a7f8a80017926b8 | |
parent | 3477e71d53197d7f1b6a1f7416f3c42ffec5f221 (diff) |
powerpc/booke: Revert SPE/AltiVec common defines for interrupt numbers
Book3E specification defines shared interrupt numbers for SPE and AltiVec
units. Still SPE is present in e200/e500v2 cores while AltiVec is present in
e6500 core. So we can currently decide at compile-time which unit to support
exclusively. As Alexander Graf suggested, this will improve code readability
especially in KVM.
Use distinct defines to identify SPE/AltiVec interrupt numbers, reverting
c58ce397 and 6b310fc5 patches that added common defines.
Signed-off-by: Mihai Caraman <mihai.caraman@freescale.com>
Acked-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
-rw-r--r-- | arch/powerpc/kernel/exceptions-64e.S | 4 | ||||
-rw-r--r-- | arch/powerpc/kernel/head_fsl_booke.S | 8 |
2 files changed, 6 insertions, 6 deletions
diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S index bb9cac6c8051..3e68d1c69718 100644 --- a/arch/powerpc/kernel/exceptions-64e.S +++ b/arch/powerpc/kernel/exceptions-64e.S | |||
@@ -635,7 +635,7 @@ interrupt_end_book3e: | |||
635 | 635 | ||
636 | /* Altivec Unavailable Interrupt */ | 636 | /* Altivec Unavailable Interrupt */ |
637 | START_EXCEPTION(altivec_unavailable); | 637 | START_EXCEPTION(altivec_unavailable); |
638 | NORMAL_EXCEPTION_PROLOG(0x200, BOOKE_INTERRUPT_SPE_ALTIVEC_UNAVAIL, | 638 | NORMAL_EXCEPTION_PROLOG(0x200, BOOKE_INTERRUPT_ALTIVEC_UNAVAIL, |
639 | PROLOG_ADDITION_NONE) | 639 | PROLOG_ADDITION_NONE) |
640 | /* we can probably do a shorter exception entry for that one... */ | 640 | /* we can probably do a shorter exception entry for that one... */ |
641 | EXCEPTION_COMMON(0x200) | 641 | EXCEPTION_COMMON(0x200) |
@@ -658,7 +658,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC) | |||
658 | /* AltiVec Assist */ | 658 | /* AltiVec Assist */ |
659 | START_EXCEPTION(altivec_assist); | 659 | START_EXCEPTION(altivec_assist); |
660 | NORMAL_EXCEPTION_PROLOG(0x220, | 660 | NORMAL_EXCEPTION_PROLOG(0x220, |
661 | BOOKE_INTERRUPT_SPE_FP_DATA_ALTIVEC_ASSIST, | 661 | BOOKE_INTERRUPT_ALTIVEC_ASSIST, |
662 | PROLOG_ADDITION_NONE) | 662 | PROLOG_ADDITION_NONE) |
663 | EXCEPTION_COMMON(0x220) | 663 | EXCEPTION_COMMON(0x220) |
664 | INTS_DISABLE | 664 | INTS_DISABLE |
diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/kernel/head_fsl_booke.S index 90f487f71707..fffd1f96bb1d 100644 --- a/arch/powerpc/kernel/head_fsl_booke.S +++ b/arch/powerpc/kernel/head_fsl_booke.S | |||
@@ -617,27 +617,27 @@ END_FTR_SECTION_IFSET(CPU_FTR_EMB_HV) | |||
617 | #ifdef CONFIG_SPE | 617 | #ifdef CONFIG_SPE |
618 | /* SPE Unavailable */ | 618 | /* SPE Unavailable */ |
619 | START_EXCEPTION(SPEUnavailable) | 619 | START_EXCEPTION(SPEUnavailable) |
620 | NORMAL_EXCEPTION_PROLOG(SPE_ALTIVEC_UNAVAIL) | 620 | NORMAL_EXCEPTION_PROLOG(SPE_UNAVAIL) |
621 | beq 1f | 621 | beq 1f |
622 | bl load_up_spe | 622 | bl load_up_spe |
623 | b fast_exception_return | 623 | b fast_exception_return |
624 | 1: addi r3,r1,STACK_FRAME_OVERHEAD | 624 | 1: addi r3,r1,STACK_FRAME_OVERHEAD |
625 | EXC_XFER_EE_LITE(0x2010, KernelSPE) | 625 | EXC_XFER_EE_LITE(0x2010, KernelSPE) |
626 | #elif defined(CONFIG_SPE_POSSIBLE) | 626 | #elif defined(CONFIG_SPE_POSSIBLE) |
627 | EXCEPTION(0x2020, SPE_ALTIVEC_UNAVAIL, SPEUnavailable, \ | 627 | EXCEPTION(0x2020, SPE_UNAVAIL, SPEUnavailable, \ |
628 | unknown_exception, EXC_XFER_EE) | 628 | unknown_exception, EXC_XFER_EE) |
629 | #endif /* CONFIG_SPE_POSSIBLE */ | 629 | #endif /* CONFIG_SPE_POSSIBLE */ |
630 | 630 | ||
631 | /* SPE Floating Point Data */ | 631 | /* SPE Floating Point Data */ |
632 | #ifdef CONFIG_SPE | 632 | #ifdef CONFIG_SPE |
633 | EXCEPTION(0x2030, SPE_FP_DATA_ALTIVEC_ASSIST, SPEFloatingPointData, | 633 | EXCEPTION(0x2030, SPE_FP_DATA, SPEFloatingPointData, |
634 | SPEFloatingPointException, EXC_XFER_EE) | 634 | SPEFloatingPointException, EXC_XFER_EE) |
635 | 635 | ||
636 | /* SPE Floating Point Round */ | 636 | /* SPE Floating Point Round */ |
637 | EXCEPTION(0x2050, SPE_FP_ROUND, SPEFloatingPointRound, \ | 637 | EXCEPTION(0x2050, SPE_FP_ROUND, SPEFloatingPointRound, \ |
638 | SPEFloatingPointRoundException, EXC_XFER_EE) | 638 | SPEFloatingPointRoundException, EXC_XFER_EE) |
639 | #elif defined(CONFIG_SPE_POSSIBLE) | 639 | #elif defined(CONFIG_SPE_POSSIBLE) |
640 | EXCEPTION(0x2040, SPE_FP_DATA_ALTIVEC_ASSIST, SPEFloatingPointData, | 640 | EXCEPTION(0x2040, SPE_FP_DATA, SPEFloatingPointData, |
641 | unknown_exception, EXC_XFER_EE) | 641 | unknown_exception, EXC_XFER_EE) |
642 | EXCEPTION(0x2050, SPE_FP_ROUND, SPEFloatingPointRound, \ | 642 | EXCEPTION(0x2050, SPE_FP_ROUND, SPEFloatingPointRound, \ |
643 | unknown_exception, EXC_XFER_EE) | 643 | unknown_exception, EXC_XFER_EE) |