diff options
Diffstat (limited to 'arch/arm/include/asm/assembler.h')
| -rw-r--r-- | arch/arm/include/asm/assembler.h | 8 | 
1 files changed, 8 insertions, 0 deletions
| diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h index 2ef95813fce0..eb87200aa4b5 100644 --- a/arch/arm/include/asm/assembler.h +++ b/arch/arm/include/asm/assembler.h @@ -250,6 +250,7 @@   * Beware, it also clobers LR.   */  .macro safe_svcmode_maskall reg:req +#if __LINUX_ARM_ARCH__ >= 6  	mrs	\reg , cpsr  	mov	lr , \reg  	and	lr , lr , #MODE_MASK @@ -266,6 +267,13 @@ THUMB(	orr	\reg , \reg , #PSR_T_BIT	)  	__ERET  1:	msr	cpsr_c, \reg  2: +#else +/* + * workaround for possibly broken pre-v6 hardware + * (akita, Sharp Zaurus C-1000, PXA270-based) + */ +	setmode	PSR_F_BIT | PSR_I_BIT | SVC_MODE, \reg +#endif  .endm  /* |