diff options
Diffstat (limited to 'arch/mips/include')
| -rw-r--r-- | arch/mips/include/asm/hugetlb.h | 1 | ||||
| -rw-r--r-- | arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_spi.h | 1 | ||||
| -rw-r--r-- | arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h | 4 | ||||
| -rw-r--r-- | arch/mips/include/asm/mach-sead3/cpu-feature-overrides.h | 4 | ||||
| -rw-r--r-- | arch/mips/include/asm/mipsregs.h | 203 | ||||
| -rw-r--r-- | arch/mips/include/asm/page.h | 2 | ||||
| -rw-r--r-- | arch/mips/include/asm/signal.h | 2 | ||||
| -rw-r--r-- | arch/mips/include/uapi/asm/signal.h | 8 | 
8 files changed, 197 insertions, 28 deletions
diff --git a/arch/mips/include/asm/hugetlb.h b/arch/mips/include/asm/hugetlb.h index ef99db994c2..fe0d15d3266 100644 --- a/arch/mips/include/asm/hugetlb.h +++ b/arch/mips/include/asm/hugetlb.h @@ -10,6 +10,7 @@  #define __ASM_HUGETLB_H  #include <asm/page.h> +#include <asm-generic/hugetlb.h>  static inline int is_hugepage_only_range(struct mm_struct *mm, diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_spi.h b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_spi.h index c9bae136260..b0184cf0257 100644 --- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_spi.h +++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_spi.h @@ -13,7 +13,6 @@ struct bcm63xx_spi_pdata {  	unsigned int	msg_ctl_width;  	int		bus_num;  	int		num_chipselect; -	u32		speed_hz;  };  enum bcm63xx_regs_spi { diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h index 62d6a3b4d3b..4e0b6bc1165 100644 --- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h +++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h @@ -9,10 +9,8 @@   *   * Initialized the local nvram copy from the target address and checks   * its checksum. - * - * Returns 0 on success.   */ -int __init bcm63xx_nvram_init(void *nvram); +void bcm63xx_nvram_init(void *nvram);  /**   * bcm63xx_nvram_get_name() - returns the board name according to nvram diff --git a/arch/mips/include/asm/mach-sead3/cpu-feature-overrides.h b/arch/mips/include/asm/mach-sead3/cpu-feature-overrides.h index d9c82841903..193c0912d38 100644 --- a/arch/mips/include/asm/mach-sead3/cpu-feature-overrides.h +++ b/arch/mips/include/asm/mach-sead3/cpu-feature-overrides.h @@ -28,11 +28,7 @@  /* #define cpu_has_prefetch	? */  #define cpu_has_mcheck		1  /* #define cpu_has_ejtag	? */ -#ifdef CONFIG_CPU_HAS_LLSC  #define cpu_has_llsc		1 -#else -#define cpu_has_llsc		0 -#endif  /* #define cpu_has_vtag_icache	? */  /* #define cpu_has_dc_aliases	? */  /* #define cpu_has_ic_fills_f_dc ? */ diff --git a/arch/mips/include/asm/mipsregs.h b/arch/mips/include/asm/mipsregs.h index 12b70c25906..0da44d422f5 100644 --- a/arch/mips/include/asm/mipsregs.h +++ b/arch/mips/include/asm/mipsregs.h @@ -1166,7 +1166,10 @@ do {									\  	unsigned int __dspctl;						\  									\  	__asm__ __volatile__(						\ +	"	.set push					\n"	\ +	"	.set dsp					\n"	\  	"	rddsp	%0, %x1					\n"	\ +	"	.set pop					\n"	\  	: "=r" (__dspctl)						\  	: "i" (mask));							\  	__dspctl;							\ @@ -1175,30 +1178,198 @@ do {									\  #define wrdsp(val, mask)						\  do {									\  	__asm__ __volatile__(						\ +	"	.set push					\n"	\ +	"	.set dsp					\n"	\  	"	wrdsp	%0, %x1					\n"	\ +	"	.set pop					\n"	\  	:								\  	: "r" (val), "i" (mask));					\  } while (0) -#define mflo0() ({ long mflo0; __asm__("mflo %0, $ac0" : "=r" (mflo0)); mflo0;}) -#define mflo1() ({ long mflo1; __asm__("mflo %0, $ac1" : "=r" (mflo1)); mflo1;}) -#define mflo2() ({ long mflo2; __asm__("mflo %0, $ac2" : "=r" (mflo2)); mflo2;}) -#define mflo3() ({ long mflo3; __asm__("mflo %0, $ac3" : "=r" (mflo3)); mflo3;}) +#define mflo0()								\ +({									\ +	long mflo0;							\ +	__asm__(							\ +	"	.set push					\n"	\ +	"	.set dsp					\n"	\ +	"	mflo %0, $ac0					\n"	\ +	"	.set pop					\n" 	\ +	: "=r" (mflo0)); 						\ +	mflo0;								\ +}) + +#define mflo1()								\ +({									\ +	long mflo1;							\ +	__asm__(							\ +	"	.set push					\n"	\ +	"	.set dsp					\n"	\ +	"	mflo %0, $ac1					\n"	\ +	"	.set pop					\n" 	\ +	: "=r" (mflo1)); 						\ +	mflo1;								\ +}) + +#define mflo2()								\ +({									\ +	long mflo2;							\ +	__asm__(							\ +	"	.set push					\n"	\ +	"	.set dsp					\n"	\ +	"	mflo %0, $ac2					\n"	\ +	"	.set pop					\n" 	\ +	: "=r" (mflo2)); 						\ +	mflo2;								\ +}) -#define mfhi0() ({ long mfhi0; __asm__("mfhi %0, $ac0" : "=r" (mfhi0)); mfhi0;}) -#define mfhi1() ({ long mfhi1; __asm__("mfhi %0, $ac1" : "=r" (mfhi1)); mfhi1;}) -#define mfhi2() ({ long mfhi2; __asm__("mfhi %0, $ac2" : "=r" (mfhi2)); mfhi2;}) -#define mfhi3() ({ long mfhi3; __asm__("mfhi %0, $ac3" : "=r" (mfhi3)); mfhi3;}) +#define mflo3()								\ +({									\ +	long mflo3;							\ +	__asm__(							\ +	"	.set push					\n"	\ +	"	.set dsp					\n"	\ +	"	mflo %0, $ac3					\n"	\ +	"	.set pop					\n" 	\ +	: "=r" (mflo3)); 						\ +	mflo3;								\ +}) -#define mtlo0(x) __asm__("mtlo %0, $ac0" ::"r" (x)) -#define mtlo1(x) __asm__("mtlo %0, $ac1" ::"r" (x)) -#define mtlo2(x) __asm__("mtlo %0, $ac2" ::"r" (x)) -#define mtlo3(x) __asm__("mtlo %0, $ac3" ::"r" (x)) +#define mfhi0()								\ +({									\ +	long mfhi0;							\ +	__asm__(							\ +	"	.set push					\n"	\ +	"	.set dsp					\n"	\ +	"	mfhi %0, $ac0					\n"	\ +	"	.set pop					\n" 	\ +	: "=r" (mfhi0)); 						\ +	mfhi0;								\ +}) -#define mthi0(x) __asm__("mthi %0, $ac0" ::"r" (x)) -#define mthi1(x) __asm__("mthi %0, $ac1" ::"r" (x)) -#define mthi2(x) __asm__("mthi %0, $ac2" ::"r" (x)) -#define mthi3(x) __asm__("mthi %0, $ac3" ::"r" (x)) +#define mfhi1()								\ +({									\ +	long mfhi1;							\ +	__asm__(							\ +	"	.set push					\n"	\ +	"	.set dsp					\n"	\ +	"	mfhi %0, $ac1					\n"	\ +	"	.set pop					\n" 	\ +	: "=r" (mfhi1)); 						\ +	mfhi1;								\ +}) + +#define mfhi2()								\ +({									\ +	long mfhi2;							\ +	__asm__(							\ +	"	.set push					\n"	\ +	"	.set dsp					\n"	\ +	"	mfhi %0, $ac2					\n"	\ +	"	.set pop					\n" 	\ +	: "=r" (mfhi2)); 						\ +	mfhi2;								\ +}) + +#define mfhi3()								\ +({									\ +	long mfhi3;							\ +	__asm__(							\ +	"	.set push					\n"	\ +	"	.set dsp					\n"	\ +	"	mfhi %0, $ac3					\n"	\ +	"	.set pop					\n" 	\ +	: "=r" (mfhi3)); 						\ +	mfhi3;								\ +}) + + +#define mtlo0(x)							\ +({									\ +	__asm__(							\ +	"	.set push					\n"	\ +	"	.set dsp					\n"	\ +	"	mtlo %0, $ac0					\n"	\ +	"	.set pop					\n"	\ +	:								\ +	: "r" (x));							\ +}) + +#define mtlo1(x)							\ +({									\ +	__asm__(							\ +	"	.set push					\n"	\ +	"	.set dsp					\n"	\ +	"	mtlo %0, $ac1					\n"	\ +	"	.set pop					\n"	\ +	:								\ +	: "r" (x));							\ +}) + +#define mtlo2(x)							\ +({									\ +	__asm__(							\ +	"	.set push					\n"	\ +	"	.set dsp					\n"	\ +	"	mtlo %0, $ac2					\n"	\ +	"	.set pop					\n"	\ +	:								\ +	: "r" (x));							\ +}) + +#define mtlo3(x)							\ +({									\ +	__asm__(							\ +	"	.set push					\n"	\ +	"	.set dsp					\n"	\ +	"	mtlo %0, $ac3					\n"	\ +	"	.set pop					\n"	\ +	:								\ +	: "r" (x));							\ +}) + +#define mthi0(x)							\ +({									\ +	__asm__(							\ +	"	.set push					\n"	\ +	"	.set dsp					\n"	\ +	"	mthi %0, $ac0					\n"	\ +	"	.set pop					\n"	\ +	:								\ +	: "r" (x));							\ +}) + +#define mthi1(x)							\ +({									\ +	__asm__(							\ +	"	.set push					\n"	\ +	"	.set dsp					\n"	\ +	"	mthi %0, $ac1					\n"	\ +	"	.set pop					\n"	\ +	:								\ +	: "r" (x));							\ +}) + +#define mthi2(x)							\ +({									\ +	__asm__(							\ +	"	.set push					\n"	\ +	"	.set dsp					\n"	\ +	"	mthi %0, $ac2					\n"	\ +	"	.set pop					\n"	\ +	:								\ +	: "r" (x));							\ +}) + +#define mthi3(x)							\ +({									\ +	__asm__(							\ +	"	.set push					\n"	\ +	"	.set dsp					\n"	\ +	"	mthi %0, $ac3					\n"	\ +	"	.set pop					\n"	\ +	:								\ +	: "r" (x));							\ +})  #else diff --git a/arch/mips/include/asm/page.h b/arch/mips/include/asm/page.h index 99fc547af9d..eab99e536b5 100644 --- a/arch/mips/include/asm/page.h +++ b/arch/mips/include/asm/page.h @@ -31,7 +31,7 @@  #define PAGE_SHIFT	16  #endif  #define PAGE_SIZE	(_AC(1,UL) << PAGE_SHIFT) -#define PAGE_MASK	(~(PAGE_SIZE - 1)) +#define PAGE_MASK	(~((1 << PAGE_SHIFT) - 1))  #ifdef CONFIG_MIPS_HUGE_TLB_SUPPORT  #define HPAGE_SHIFT	(PAGE_SHIFT + PAGE_SHIFT - 3) diff --git a/arch/mips/include/asm/signal.h b/arch/mips/include/asm/signal.h index 197f6367c20..8efe5a9e2c3 100644 --- a/arch/mips/include/asm/signal.h +++ b/arch/mips/include/asm/signal.h @@ -21,6 +21,6 @@  #include <asm/sigcontext.h>  #include <asm/siginfo.h> -#define __ARCH_HAS_ODD_SIGACTION +#define __ARCH_HAS_IRIX_SIGACTION  #endif /* _ASM_SIGNAL_H */ diff --git a/arch/mips/include/uapi/asm/signal.h b/arch/mips/include/uapi/asm/signal.h index d6b18b4d0f3..addb9f556b7 100644 --- a/arch/mips/include/uapi/asm/signal.h +++ b/arch/mips/include/uapi/asm/signal.h @@ -72,6 +72,12 @@ typedef unsigned long old_sigset_t;		/* at least 32 bits */   *   * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single   * Unix names RESETHAND and NODEFER respectively. + * + * SA_RESTORER used to be defined as 0x04000000 but only the O32 ABI ever + * supported its use and no libc was using it, so the entire sa-restorer + * functionality was removed with lmo commit 39bffc12c3580ab for 2.5.48 + * retaining only the SA_RESTORER definition as a reminder to avoid + * accidental reuse of the mask bit.   */  #define SA_ONSTACK	0x08000000  #define SA_RESETHAND	0x80000000 @@ -84,8 +90,6 @@ typedef unsigned long old_sigset_t;		/* at least 32 bits */  #define SA_NOMASK	SA_NODEFER  #define SA_ONESHOT	SA_RESETHAND -#define SA_RESTORER	0x04000000	/* Only for o32 */ -  #define MINSIGSTKSZ    2048  #define SIGSTKSZ       8192  |