aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/include
diff options
context:
space:
mode:
authorMichael Ellerman <mpe@ellerman.id.au>2016-10-11 05:07:56 -0400
committerMichael Ellerman <mpe@ellerman.id.au>2016-10-11 05:07:56 -0400
commit065397a969a0f80624598c5030c2551abbd986fd (patch)
tree60a4c453e6b494c8b3973497c577efa2f10102e4 /arch/powerpc/include
parent8321564a11bbeadffcc7d6335bcf3c07e5c397a3 (diff)
parente0b80f00bb96b925995d53980e0c764430bedb42 (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.h1
-rw-r--r--arch/powerpc/include/asm/hw_irq.h6
-rw-r--r--arch/powerpc/include/asm/ppc-opcode.h1
-rw-r--r--arch/powerpc/include/asm/reg.h2
-rw-r--r--arch/powerpc/include/asm/reg_8xx.h4
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);
43extern int machine_check_e500(struct pt_regs *regs); 43extern int machine_check_e500(struct pt_regs *regs);
44extern int machine_check_e200(struct pt_regs *regs); 44extern int machine_check_e200(struct pt_regs *regs);
45extern int machine_check_47x(struct pt_regs *regs); 45extern int machine_check_47x(struct pt_regs *regs);
46int machine_check_8xx(struct pt_regs *regs);
46 47
47extern void cpu_down_flush_e500v2(void); 48extern void cpu_down_flush_e500v2(void);
48extern void cpu_down_flush_e500mc(void); 49extern 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
1253extern unsigned long msr_check_and_set(unsigned long bits); 1255extern unsigned long msr_check_and_set(unsigned long bits);
1254extern bool strict_msr_control; 1256extern 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 */