Commit e53281bc authored by Christophe Leroy's avatar Christophe Leroy Committed by Michael Ellerman

powerpc: Drop _nmask_and_or_msr()

_nmask_and_or_msr() is only used at two places to set MSR_IP.

The SYNC is unnecessary as the users are not PowerPC 601.

Can be easily writen in C.

Do it, and drop _nmask_and_or_msr()
Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/c2d2b8dfb8dd677026b26dffc8d31070c38a6b89.1597388079.git.christophe.leroy@csgroup.eu
parent 6c9100ea
...@@ -437,7 +437,6 @@ extern void power9_idle_type(unsigned long stop_psscr_val, ...@@ -437,7 +437,6 @@ extern void power9_idle_type(unsigned long stop_psscr_val,
extern void flush_instruction_cache(void); extern void flush_instruction_cache(void);
extern int fix_alignment(struct pt_regs *); extern int fix_alignment(struct pt_regs *);
extern void _nmask_and_or_msr(unsigned long nmask, unsigned long or_val);
#ifdef CONFIG_PPC64 #ifdef CONFIG_PPC64
/* /*
......
...@@ -215,19 +215,6 @@ _GLOBAL(low_choose_7447a_dfs) ...@@ -215,19 +215,6 @@ _GLOBAL(low_choose_7447a_dfs)
#endif /* CONFIG_CPU_FREQ_PMAC && CONFIG_PPC_BOOK3S_32 */ #endif /* CONFIG_CPU_FREQ_PMAC && CONFIG_PPC_BOOK3S_32 */
/*
* complement mask on the msr then "or" some values on.
* _nmask_and_or_msr(nmask, value_to_or)
*/
_GLOBAL(_nmask_and_or_msr)
mfmsr r0 /* Get current msr */
andc r0,r0,r3 /* And off the bits set in r3 (first parm) */
or r0,r0,r4 /* Or on the bits in r4 (second parm) */
SYNC /* Some chip revs have problems here... */
mtmsr r0 /* Update machine state */
isync
blr /* Done */
#ifdef CONFIG_40x #ifdef CONFIG_40x
/* /*
......
...@@ -147,7 +147,8 @@ static void __noreturn mpc7448_hpc2_restart(char *cmd) ...@@ -147,7 +147,8 @@ static void __noreturn mpc7448_hpc2_restart(char *cmd)
local_irq_disable(); local_irq_disable();
/* Set exception prefix high - to the firmware */ /* Set exception prefix high - to the firmware */
_nmask_and_or_msr(0, MSR_IP); mtmsr(mfmsr() | MSR_IP);
isync();
for (;;) ; /* Spin until reset happens */ for (;;) ; /* Spin until reset happens */
} }
......
...@@ -101,7 +101,8 @@ static void __noreturn storcenter_restart(char *cmd) ...@@ -101,7 +101,8 @@ static void __noreturn storcenter_restart(char *cmd)
local_irq_disable(); local_irq_disable();
/* Set exception prefix high - to the firmware */ /* Set exception prefix high - to the firmware */
_nmask_and_or_msr(0, MSR_IP); mtmsr(mfmsr() | MSR_IP);
isync();
/* Wait for reset to happen */ /* Wait for reset to happen */
for (;;) ; for (;;) ;
......
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