diff options
author | Michael Ellerman <mpe@ellerman.id.au> | 2016-10-11 05:07:56 -0400 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2016-10-11 05:07:56 -0400 |
commit | 065397a969a0f80624598c5030c2551abbd986fd (patch) | |
tree | 60a4c453e6b494c8b3973497c577efa2f10102e4 /arch/powerpc/include | |
parent | 8321564a11bbeadffcc7d6335bcf3c07e5c397a3 (diff) | |
parent | e0b80f00bb96b925995d53980e0c764430bedb42 (diff) |
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux into next
Freescale updates from Scott:
"Highlights include qbman support (a prerequisite for datapath drivers
such as ethernet), a PCI DMA fix+improvement, reset handler changes, more
8xx optimizations, and some cleanups and fixes."
Diffstat (limited to 'arch/powerpc/include')
-rw-r--r-- | arch/powerpc/include/asm/cputable.h | 1 | ||||
-rw-r--r-- | arch/powerpc/include/asm/hw_irq.h | 6 | ||||
-rw-r--r-- | arch/powerpc/include/asm/ppc-opcode.h | 1 | ||||
-rw-r--r-- | arch/powerpc/include/asm/reg.h | 2 | ||||
-rw-r--r-- | arch/powerpc/include/asm/reg_8xx.h | 4 |
5 files changed, 14 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/cputable.h b/arch/powerpc/include/asm/cputable.h index f752e6f7cfbe..ab68d0ee7725 100644 --- a/arch/powerpc/include/asm/cputable.h +++ b/arch/powerpc/include/asm/cputable.h | |||
@@ -43,6 +43,7 @@ extern int machine_check_e500mc(struct pt_regs *regs); | |||
43 | extern int machine_check_e500(struct pt_regs *regs); | 43 | extern int machine_check_e500(struct pt_regs *regs); |
44 | extern int machine_check_e200(struct pt_regs *regs); | 44 | extern int machine_check_e200(struct pt_regs *regs); |
45 | extern int machine_check_47x(struct pt_regs *regs); | 45 | extern int machine_check_47x(struct pt_regs *regs); |
46 | int machine_check_8xx(struct pt_regs *regs); | ||
46 | 47 | ||
47 | extern void cpu_down_flush_e500v2(void); | 48 | extern void cpu_down_flush_e500v2(void); |
48 | extern void cpu_down_flush_e500mc(void); | 49 | extern void cpu_down_flush_e500mc(void); |
diff --git a/arch/powerpc/include/asm/hw_irq.h b/arch/powerpc/include/asm/hw_irq.h index c7d82ff62a33..eba60416536e 100644 --- a/arch/powerpc/include/asm/hw_irq.h +++ b/arch/powerpc/include/asm/hw_irq.h | |||
@@ -155,6 +155,8 @@ static inline unsigned long arch_local_irq_save(void) | |||
155 | unsigned long flags = arch_local_save_flags(); | 155 | unsigned long flags = arch_local_save_flags(); |
156 | #ifdef CONFIG_BOOKE | 156 | #ifdef CONFIG_BOOKE |
157 | asm volatile("wrteei 0" : : : "memory"); | 157 | asm volatile("wrteei 0" : : : "memory"); |
158 | #elif defined(CONFIG_PPC_8xx) | ||
159 | wrtspr(SPRN_EID); | ||
158 | #else | 160 | #else |
159 | SET_MSR_EE(flags & ~MSR_EE); | 161 | SET_MSR_EE(flags & ~MSR_EE); |
160 | #endif | 162 | #endif |
@@ -165,6 +167,8 @@ static inline void arch_local_irq_disable(void) | |||
165 | { | 167 | { |
166 | #ifdef CONFIG_BOOKE | 168 | #ifdef CONFIG_BOOKE |
167 | asm volatile("wrteei 0" : : : "memory"); | 169 | asm volatile("wrteei 0" : : : "memory"); |
170 | #elif defined(CONFIG_PPC_8xx) | ||
171 | wrtspr(SPRN_EID); | ||
168 | #else | 172 | #else |
169 | arch_local_irq_save(); | 173 | arch_local_irq_save(); |
170 | #endif | 174 | #endif |
@@ -174,6 +178,8 @@ static inline void arch_local_irq_enable(void) | |||
174 | { | 178 | { |
175 | #ifdef CONFIG_BOOKE | 179 | #ifdef CONFIG_BOOKE |
176 | asm volatile("wrteei 1" : : : "memory"); | 180 | asm volatile("wrteei 1" : : : "memory"); |
181 | #elif defined(CONFIG_PPC_8xx) | ||
182 | wrtspr(SPRN_EIE); | ||
177 | #else | 183 | #else |
178 | unsigned long msr = mfmsr(); | 184 | unsigned long msr = mfmsr(); |
179 | SET_MSR_EE(msr | MSR_EE); | 185 | SET_MSR_EE(msr | MSR_EE); |
diff --git a/arch/powerpc/include/asm/ppc-opcode.h b/arch/powerpc/include/asm/ppc-opcode.h index 54ff8ce7fa96..0132831b3081 100644 --- a/arch/powerpc/include/asm/ppc-opcode.h +++ b/arch/powerpc/include/asm/ppc-opcode.h | |||
@@ -152,6 +152,7 @@ | |||
152 | #define PPC_INST_LWSYNC 0x7c2004ac | 152 | #define PPC_INST_LWSYNC 0x7c2004ac |
153 | #define PPC_INST_SYNC 0x7c0004ac | 153 | #define PPC_INST_SYNC 0x7c0004ac |
154 | #define PPC_INST_SYNC_MASK 0xfc0007fe | 154 | #define PPC_INST_SYNC_MASK 0xfc0007fe |
155 | #define PPC_INST_ISYNC 0x4c00012c | ||
155 | #define PPC_INST_LXVD2X 0x7c000698 | 156 | #define PPC_INST_LXVD2X 0x7c000698 |
156 | #define PPC_INST_MCRXR 0x7c000400 | 157 | #define PPC_INST_MCRXR 0x7c000400 |
157 | #define PPC_INST_MCRXR_MASK 0xfc0007fe | 158 | #define PPC_INST_MCRXR_MASK 0xfc0007fe |
diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h index a8f63bcb71af..cff79885c2fd 100644 --- a/arch/powerpc/include/asm/reg.h +++ b/arch/powerpc/include/asm/reg.h | |||
@@ -1249,6 +1249,8 @@ static inline void mtmsr_isync(unsigned long val) | |||
1249 | : "r" ((unsigned long)(v)) \ | 1249 | : "r" ((unsigned long)(v)) \ |
1250 | : "memory") | 1250 | : "memory") |
1251 | #endif | 1251 | #endif |
1252 | #define wrtspr(rn) asm volatile("mtspr " __stringify(rn) ",0" : \ | ||
1253 | : : "memory") | ||
1252 | 1254 | ||
1253 | extern unsigned long msr_check_and_set(unsigned long bits); | 1255 | extern unsigned long msr_check_and_set(unsigned long bits); |
1254 | extern bool strict_msr_control; | 1256 | extern bool strict_msr_control; |
diff --git a/arch/powerpc/include/asm/reg_8xx.h b/arch/powerpc/include/asm/reg_8xx.h index 94d01f81e668..0197e12f7d48 100644 --- a/arch/powerpc/include/asm/reg_8xx.h +++ b/arch/powerpc/include/asm/reg_8xx.h | |||
@@ -25,6 +25,10 @@ | |||
25 | #define SPRN_MD_RAM0 825 | 25 | #define SPRN_MD_RAM0 825 |
26 | #define SPRN_MD_RAM1 826 | 26 | #define SPRN_MD_RAM1 826 |
27 | 27 | ||
28 | /* Special MSR manipulation registers */ | ||
29 | #define SPRN_EIE 80 /* External interrupt enable (EE=1, RI=1) */ | ||
30 | #define SPRN_EID 81 /* External interrupt disable (EE=0, RI=1) */ | ||
31 | |||
28 | /* Commands. Only the first few are available to the instruction cache. | 32 | /* Commands. Only the first few are available to the instruction cache. |
29 | */ | 33 | */ |
30 | #define IDC_ENABLE 0x02000000 /* Cache enable */ | 34 | #define IDC_ENABLE 0x02000000 /* Cache enable */ |