forked from mirrors/linux
		
	xtensa: clean up WSR*/RSR*/get_sr/set_sr
WSR and RSR are too generic and collide with other macro definitions in the kernel causing warnings in allmodconfig builds. Drop WSR and RSR macros and WSR_* and RSR_* variants. Change get_sr and set_sr to xtensa_get_sr and xtensa_set_sr. Fix up users. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
This commit is contained in:
		
							parent
							
								
									c066cc8af9
								
							
						
					
					
						commit
						cad6fade6e
					
				
					 11 changed files with 50 additions and 69 deletions
				
			
		|  | @ -12,7 +12,6 @@ | ||||||
| #ifndef _XTENSA_COPROCESSOR_H | #ifndef _XTENSA_COPROCESSOR_H | ||||||
| #define _XTENSA_COPROCESSOR_H | #define _XTENSA_COPROCESSOR_H | ||||||
| 
 | 
 | ||||||
| #include <linux/stringify.h> |  | ||||||
| #include <variant/core.h> | #include <variant/core.h> | ||||||
| #include <variant/tie.h> | #include <variant/tie.h> | ||||||
| #include <asm/types.h> | #include <asm/types.h> | ||||||
|  | @ -90,19 +89,6 @@ | ||||||
| 
 | 
 | ||||||
| #ifndef __ASSEMBLY__ | #ifndef __ASSEMBLY__ | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| #if XCHAL_HAVE_CP |  | ||||||
| 
 |  | ||||||
| #define RSR_CPENABLE(x)	do {						  \ |  | ||||||
| 	__asm__ __volatile__("rsr %0, cpenable" : "=a" (x));		  \ |  | ||||||
| 	} while(0); |  | ||||||
| #define WSR_CPENABLE(x)	do {						  \ |  | ||||||
| 	__asm__ __volatile__("wsr %0, cpenable; rsync" :: "a" (x));	  \ |  | ||||||
| 	} while(0); |  | ||||||
| 
 |  | ||||||
| #endif /* XCHAL_HAVE_CP */ |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| /*
 | /*
 | ||||||
|  * Additional registers. |  * Additional registers. | ||||||
|  * We define three types of additional registers: |  * We define three types of additional registers: | ||||||
|  | @ -162,12 +148,6 @@ extern void coprocessor_flush(struct thread_info*, int); | ||||||
| extern void coprocessor_release_all(struct thread_info*); | extern void coprocessor_release_all(struct thread_info*); | ||||||
| extern void coprocessor_flush_all(struct thread_info*); | extern void coprocessor_flush_all(struct thread_info*); | ||||||
| 
 | 
 | ||||||
| static inline void coprocessor_clear_cpenable(void) |  | ||||||
| { |  | ||||||
| 	unsigned long i = 0; |  | ||||||
| 	WSR_CPENABLE(i); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #endif	/* XTENSA_HAVE_COPROCESSORS */ | #endif	/* XTENSA_HAVE_COPROCESSORS */ | ||||||
| 
 | 
 | ||||||
| #endif	/* !__ASSEMBLY__ */ | #endif	/* !__ASSEMBLY__ */ | ||||||
|  |  | ||||||
|  | @ -12,6 +12,7 @@ | ||||||
| #ifndef _XTENSA_IRQFLAGS_H | #ifndef _XTENSA_IRQFLAGS_H | ||||||
| #define _XTENSA_IRQFLAGS_H | #define _XTENSA_IRQFLAGS_H | ||||||
| 
 | 
 | ||||||
|  | #include <linux/stringify.h> | ||||||
| #include <linux/types.h> | #include <linux/types.h> | ||||||
| #include <asm/processor.h> | #include <asm/processor.h> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -13,6 +13,7 @@ | ||||||
| #include <variant/core.h> | #include <variant/core.h> | ||||||
| 
 | 
 | ||||||
| #include <linux/compiler.h> | #include <linux/compiler.h> | ||||||
|  | #include <linux/stringify.h> | ||||||
| #include <asm/ptrace.h> | #include <asm/ptrace.h> | ||||||
| #include <asm/types.h> | #include <asm/types.h> | ||||||
| #include <asm/regs.h> | #include <asm/regs.h> | ||||||
|  | @ -212,11 +213,18 @@ extern unsigned long get_wchan(struct task_struct *p); | ||||||
| 
 | 
 | ||||||
| /* Special register access. */ | /* Special register access. */ | ||||||
| 
 | 
 | ||||||
| #define WSR(v,sr) __asm__ __volatile__ ("wsr %0,"__stringify(sr) :: "a"(v)); | #define xtensa_set_sr(x, sr) \ | ||||||
| #define RSR(v,sr) __asm__ __volatile__ ("rsr %0,"__stringify(sr) : "=a"(v)); | 	({ \ | ||||||
|  | 	 unsigned int v = (unsigned int)(x); \ | ||||||
|  | 	 __asm__ __volatile__ ("wsr %0, "__stringify(sr) :: "a"(v)); \ | ||||||
|  | 	 }) | ||||||
| 
 | 
 | ||||||
| #define set_sr(x,sr) ({unsigned int v=(unsigned int)x; WSR(v,sr);}) | #define xtensa_get_sr(sr) \ | ||||||
| #define get_sr(sr) ({unsigned int v; RSR(v,sr); v; }) | 	({ \ | ||||||
|  | 	 unsigned int v; \ | ||||||
|  | 	 __asm__ __volatile__ ("rsr %0, "__stringify(sr) : "=a"(v)); \ | ||||||
|  | 	 v; \ | ||||||
|  | 	 }) | ||||||
| 
 | 
 | ||||||
| #ifndef XCHAL_HAVE_EXTERN_REGS | #ifndef XCHAL_HAVE_EXTERN_REGS | ||||||
| #define XCHAL_HAVE_EXTERN_REGS 0 | #define XCHAL_HAVE_EXTERN_REGS 0 | ||||||
|  |  | ||||||
|  | @ -11,6 +11,7 @@ | ||||||
| #ifndef _XTENSA_THREAD_INFO_H | #ifndef _XTENSA_THREAD_INFO_H | ||||||
| #define _XTENSA_THREAD_INFO_H | #define _XTENSA_THREAD_INFO_H | ||||||
| 
 | 
 | ||||||
|  | #include <linux/stringify.h> | ||||||
| #include <asm/kmem_layout.h> | #include <asm/kmem_layout.h> | ||||||
| 
 | 
 | ||||||
| #define CURRENT_SHIFT KERNEL_STACK_SHIFT | #define CURRENT_SHIFT KERNEL_STACK_SHIFT | ||||||
|  |  | ||||||
|  | @ -10,7 +10,6 @@ | ||||||
| #define _XTENSA_TIMEX_H | #define _XTENSA_TIMEX_H | ||||||
| 
 | 
 | ||||||
| #include <asm/processor.h> | #include <asm/processor.h> | ||||||
| #include <linux/stringify.h> |  | ||||||
| 
 | 
 | ||||||
| #if XCHAL_NUM_TIMERS > 0 && \ | #if XCHAL_NUM_TIMERS > 0 && \ | ||||||
| 	XTENSA_INT_LEVEL(XCHAL_TIMER0_INTERRUPT) <= XCHAL_EXCM_LEVEL | 	XTENSA_INT_LEVEL(XCHAL_TIMER0_INTERRUPT) <= XCHAL_EXCM_LEVEL | ||||||
|  | @ -40,33 +39,24 @@ void local_timer_setup(unsigned cpu); | ||||||
|  * Register access. |  * Register access. | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #define WSR_CCOUNT(r)	  asm volatile ("wsr %0, ccount" :: "a" (r)) |  | ||||||
| #define RSR_CCOUNT(r)	  asm volatile ("rsr %0, ccount" : "=a" (r)) |  | ||||||
| #define WSR_CCOMPARE(x,r) asm volatile ("wsr %0,"__stringify(SREG_CCOMPARE)"+"__stringify(x) :: "a"(r)) |  | ||||||
| #define RSR_CCOMPARE(x,r) asm volatile ("rsr %0,"__stringify(SREG_CCOMPARE)"+"__stringify(x) : "=a"(r)) |  | ||||||
| 
 |  | ||||||
| static inline unsigned long get_ccount (void) | static inline unsigned long get_ccount (void) | ||||||
| { | { | ||||||
| 	unsigned long ccount; | 	return xtensa_get_sr(ccount); | ||||||
| 	RSR_CCOUNT(ccount); |  | ||||||
| 	return ccount; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static inline void set_ccount (unsigned long ccount) | static inline void set_ccount (unsigned long ccount) | ||||||
| { | { | ||||||
| 	WSR_CCOUNT(ccount); | 	xtensa_set_sr(ccount, ccount); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static inline unsigned long get_linux_timer (void) | static inline unsigned long get_linux_timer (void) | ||||||
| { | { | ||||||
| 	unsigned ccompare; | 	return xtensa_get_sr(SREG_CCOMPARE + LINUX_TIMER); | ||||||
| 	RSR_CCOMPARE(LINUX_TIMER, ccompare); |  | ||||||
| 	return ccompare; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static inline void set_linux_timer (unsigned long ccompare) | static inline void set_linux_timer (unsigned long ccompare) | ||||||
| { | { | ||||||
| 	WSR_CCOMPARE(LINUX_TIMER, ccompare); | 	xtensa_set_sr(ccompare, SREG_CCOMPARE + LINUX_TIMER); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #endif	/* _XTENSA_TIMEX_H */ | #endif	/* _XTENSA_TIMEX_H */ | ||||||
|  |  | ||||||
|  | @ -101,30 +101,30 @@ static void xtensa_wsr(unsigned long v, u8 sr) | ||||||
| 	switch (sr) { | 	switch (sr) { | ||||||
| #if XCHAL_NUM_IBREAK > 0 | #if XCHAL_NUM_IBREAK > 0 | ||||||
| 	case SREG_IBREAKA + 0: | 	case SREG_IBREAKA + 0: | ||||||
| 		WSR(v, SREG_IBREAKA + 0); | 		xtensa_set_sr(v, SREG_IBREAKA + 0); | ||||||
| 		break; | 		break; | ||||||
| #endif | #endif | ||||||
| #if XCHAL_NUM_IBREAK > 1 | #if XCHAL_NUM_IBREAK > 1 | ||||||
| 	case SREG_IBREAKA + 1: | 	case SREG_IBREAKA + 1: | ||||||
| 		WSR(v, SREG_IBREAKA + 1); | 		xtensa_set_sr(v, SREG_IBREAKA + 1); | ||||||
| 		break; | 		break; | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #if XCHAL_NUM_DBREAK > 0 | #if XCHAL_NUM_DBREAK > 0 | ||||||
| 	case SREG_DBREAKA + 0: | 	case SREG_DBREAKA + 0: | ||||||
| 		WSR(v, SREG_DBREAKA + 0); | 		xtensa_set_sr(v, SREG_DBREAKA + 0); | ||||||
| 		break; | 		break; | ||||||
| 	case SREG_DBREAKC + 0: | 	case SREG_DBREAKC + 0: | ||||||
| 		WSR(v, SREG_DBREAKC + 0); | 		xtensa_set_sr(v, SREG_DBREAKC + 0); | ||||||
| 		break; | 		break; | ||||||
| #endif | #endif | ||||||
| #if XCHAL_NUM_DBREAK > 1 | #if XCHAL_NUM_DBREAK > 1 | ||||||
| 	case SREG_DBREAKA + 1: | 	case SREG_DBREAKA + 1: | ||||||
| 		WSR(v, SREG_DBREAKA + 1); | 		xtensa_set_sr(v, SREG_DBREAKA + 1); | ||||||
| 		break; | 		break; | ||||||
| 
 | 
 | ||||||
| 	case SREG_DBREAKC + 1: | 	case SREG_DBREAKC + 1: | ||||||
| 		WSR(v, SREG_DBREAKC + 1); | 		xtensa_set_sr(v, SREG_DBREAKC + 1); | ||||||
| 		break; | 		break; | ||||||
| #endif | #endif | ||||||
| 	} | 	} | ||||||
|  | @ -150,8 +150,8 @@ static void set_ibreak_regs(int reg, struct perf_event *bp) | ||||||
| 	unsigned long ibreakenable; | 	unsigned long ibreakenable; | ||||||
| 
 | 
 | ||||||
| 	xtensa_wsr(info->address, SREG_IBREAKA + reg); | 	xtensa_wsr(info->address, SREG_IBREAKA + reg); | ||||||
| 	RSR(ibreakenable, SREG_IBREAKENABLE); | 	ibreakenable = xtensa_get_sr(SREG_IBREAKENABLE); | ||||||
| 	WSR(ibreakenable | (1 << reg), SREG_IBREAKENABLE); | 	xtensa_set_sr(ibreakenable | (1 << reg), SREG_IBREAKENABLE); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void set_dbreak_regs(int reg, struct perf_event *bp) | static void set_dbreak_regs(int reg, struct perf_event *bp) | ||||||
|  | @ -214,8 +214,9 @@ void arch_uninstall_hw_breakpoint(struct perf_event *bp) | ||||||
| 		/* Breakpoint */ | 		/* Breakpoint */ | ||||||
| 		i = free_slot(this_cpu_ptr(bp_on_reg), XCHAL_NUM_IBREAK, bp); | 		i = free_slot(this_cpu_ptr(bp_on_reg), XCHAL_NUM_IBREAK, bp); | ||||||
| 		if (i >= 0) { | 		if (i >= 0) { | ||||||
| 			RSR(ibreakenable, SREG_IBREAKENABLE); | 			ibreakenable = xtensa_get_sr(SREG_IBREAKENABLE); | ||||||
| 			WSR(ibreakenable & ~(1 << i), SREG_IBREAKENABLE); | 			xtensa_set_sr(ibreakenable & ~(1 << i), | ||||||
|  | 				      SREG_IBREAKENABLE); | ||||||
| 		} | 		} | ||||||
| 	} else { | 	} else { | ||||||
| 		/* Watchpoint */ | 		/* Watchpoint */ | ||||||
|  |  | ||||||
|  | @ -87,7 +87,7 @@ void coprocessor_release_all(struct thread_info *ti) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	ti->cpenable = cpenable; | 	ti->cpenable = cpenable; | ||||||
| 	coprocessor_clear_cpenable(); | 	xtensa_set_sr(0, cpenable); | ||||||
| 
 | 
 | ||||||
| 	preempt_enable(); | 	preempt_enable(); | ||||||
| } | } | ||||||
|  | @ -99,16 +99,16 @@ void coprocessor_flush_all(struct thread_info *ti) | ||||||
| 
 | 
 | ||||||
| 	preempt_disable(); | 	preempt_disable(); | ||||||
| 
 | 
 | ||||||
| 	RSR_CPENABLE(old_cpenable); | 	old_cpenable = xtensa_get_sr(cpenable); | ||||||
| 	cpenable = ti->cpenable; | 	cpenable = ti->cpenable; | ||||||
| 	WSR_CPENABLE(cpenable); | 	xtensa_set_sr(cpenable, cpenable); | ||||||
| 
 | 
 | ||||||
| 	for (i = 0; i < XCHAL_CP_MAX; i++) { | 	for (i = 0; i < XCHAL_CP_MAX; i++) { | ||||||
| 		if ((cpenable & 1) != 0 && coprocessor_owner[i] == ti) | 		if ((cpenable & 1) != 0 && coprocessor_owner[i] == ti) | ||||||
| 			coprocessor_flush(ti, i); | 			coprocessor_flush(ti, i); | ||||||
| 		cpenable >>= 1; | 		cpenable >>= 1; | ||||||
| 	} | 	} | ||||||
| 	WSR_CPENABLE(old_cpenable); | 	xtensa_set_sr(old_cpenable, cpenable); | ||||||
| 
 | 
 | ||||||
| 	preempt_enable(); | 	preempt_enable(); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -318,9 +318,9 @@ static inline int mem_reserve(unsigned long start, unsigned long end) | ||||||
| void __init setup_arch(char **cmdline_p) | void __init setup_arch(char **cmdline_p) | ||||||
| { | { | ||||||
| 	pr_info("config ID: %08x:%08x\n", | 	pr_info("config ID: %08x:%08x\n", | ||||||
| 		get_sr(SREG_EPC), get_sr(SREG_EXCSAVE)); | 		xtensa_get_sr(SREG_EPC), xtensa_get_sr(SREG_EXCSAVE)); | ||||||
| 	if (get_sr(SREG_EPC) != XCHAL_HW_CONFIGID0 || | 	if (xtensa_get_sr(SREG_EPC) != XCHAL_HW_CONFIGID0 || | ||||||
| 	    get_sr(SREG_EXCSAVE) != XCHAL_HW_CONFIGID1) | 	    xtensa_get_sr(SREG_EXCSAVE) != XCHAL_HW_CONFIGID1) | ||||||
| 		pr_info("built for config ID: %08x:%08x\n", | 		pr_info("built for config ID: %08x:%08x\n", | ||||||
| 			XCHAL_HW_CONFIGID0, XCHAL_HW_CONFIGID1); | 			XCHAL_HW_CONFIGID0, XCHAL_HW_CONFIGID1); | ||||||
| 
 | 
 | ||||||
|  | @ -596,7 +596,7 @@ c_show(struct seq_file *f, void *slot) | ||||||
| 		      num_online_cpus(), | 		      num_online_cpus(), | ||||||
| 		      cpumask_pr_args(cpu_online_mask), | 		      cpumask_pr_args(cpu_online_mask), | ||||||
| 		      XCHAL_BUILD_UNIQUE_ID, | 		      XCHAL_BUILD_UNIQUE_ID, | ||||||
| 		      get_sr(SREG_EPC), get_sr(SREG_EXCSAVE), | 		      xtensa_get_sr(SREG_EPC), xtensa_get_sr(SREG_EXCSAVE), | ||||||
| 		      XCHAL_HAVE_BE ?  "big" : "little", | 		      XCHAL_HAVE_BE ?  "big" : "little", | ||||||
| 		      ccount_freq/1000000, | 		      ccount_freq/1000000, | ||||||
| 		      (ccount_freq/10000) % 100, | 		      (ccount_freq/10000) % 100, | ||||||
|  |  | ||||||
|  | @ -213,8 +213,8 @@ extern void do_IRQ(int, struct pt_regs *); | ||||||
| 
 | 
 | ||||||
| static inline void check_valid_nmi(void) | static inline void check_valid_nmi(void) | ||||||
| { | { | ||||||
| 	unsigned intread = get_sr(interrupt); | 	unsigned intread = xtensa_get_sr(interrupt); | ||||||
| 	unsigned intenable = get_sr(intenable); | 	unsigned intenable = xtensa_get_sr(intenable); | ||||||
| 
 | 
 | ||||||
| 	BUG_ON(intread & intenable & | 	BUG_ON(intread & intenable & | ||||||
| 	       ~(XTENSA_INTLEVEL_ANDBELOW_MASK(PROFILING_INTLEVEL) ^ | 	       ~(XTENSA_INTLEVEL_ANDBELOW_MASK(PROFILING_INTLEVEL) ^ | ||||||
|  | @ -271,8 +271,8 @@ void do_interrupt(struct pt_regs *regs) | ||||||
| 	irq_enter(); | 	irq_enter(); | ||||||
| 
 | 
 | ||||||
| 	for (;;) { | 	for (;;) { | ||||||
| 		unsigned intread = get_sr(interrupt); | 		unsigned intread = xtensa_get_sr(interrupt); | ||||||
| 		unsigned intenable = get_sr(intenable); | 		unsigned intenable = xtensa_get_sr(intenable); | ||||||
| 		unsigned int_at_level = intread & intenable; | 		unsigned int_at_level = intread & intenable; | ||||||
| 		unsigned level; | 		unsigned level; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -62,7 +62,7 @@ void secondary_init_irq(void) | ||||||
| 	__this_cpu_write(cached_irq_mask, | 	__this_cpu_write(cached_irq_mask, | ||||||
| 			XCHAL_INTTYPE_MASK_EXTERN_EDGE | | 			XCHAL_INTTYPE_MASK_EXTERN_EDGE | | ||||||
| 			XCHAL_INTTYPE_MASK_EXTERN_LEVEL); | 			XCHAL_INTTYPE_MASK_EXTERN_LEVEL); | ||||||
| 	set_sr(XCHAL_INTTYPE_MASK_EXTERN_EDGE | | 	xtensa_set_sr(XCHAL_INTTYPE_MASK_EXTERN_EDGE | | ||||||
| 			XCHAL_INTTYPE_MASK_EXTERN_LEVEL, intenable); | 			XCHAL_INTTYPE_MASK_EXTERN_LEVEL, intenable); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -77,7 +77,7 @@ static void xtensa_mx_irq_mask(struct irq_data *d) | ||||||
| 	} else { | 	} else { | ||||||
| 		mask = __this_cpu_read(cached_irq_mask) & ~mask; | 		mask = __this_cpu_read(cached_irq_mask) & ~mask; | ||||||
| 		__this_cpu_write(cached_irq_mask, mask); | 		__this_cpu_write(cached_irq_mask, mask); | ||||||
| 		set_sr(mask, intenable); | 		xtensa_set_sr(mask, intenable); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -92,7 +92,7 @@ static void xtensa_mx_irq_unmask(struct irq_data *d) | ||||||
| 	} else { | 	} else { | ||||||
| 		mask |= __this_cpu_read(cached_irq_mask); | 		mask |= __this_cpu_read(cached_irq_mask); | ||||||
| 		__this_cpu_write(cached_irq_mask, mask); | 		__this_cpu_write(cached_irq_mask, mask); | ||||||
| 		set_sr(mask, intenable); | 		xtensa_set_sr(mask, intenable); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -108,12 +108,12 @@ static void xtensa_mx_irq_disable(struct irq_data *d) | ||||||
| 
 | 
 | ||||||
| static void xtensa_mx_irq_ack(struct irq_data *d) | static void xtensa_mx_irq_ack(struct irq_data *d) | ||||||
| { | { | ||||||
| 	set_sr(1 << d->hwirq, intclear); | 	xtensa_set_sr(1 << d->hwirq, intclear); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int xtensa_mx_irq_retrigger(struct irq_data *d) | static int xtensa_mx_irq_retrigger(struct irq_data *d) | ||||||
| { | { | ||||||
| 	set_sr(1 << d->hwirq, intset); | 	xtensa_set_sr(1 << d->hwirq, intset); | ||||||
| 	return 1; | 	return 1; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -44,13 +44,13 @@ static const struct irq_domain_ops xtensa_irq_domain_ops = { | ||||||
| static void xtensa_irq_mask(struct irq_data *d) | static void xtensa_irq_mask(struct irq_data *d) | ||||||
| { | { | ||||||
| 	cached_irq_mask &= ~(1 << d->hwirq); | 	cached_irq_mask &= ~(1 << d->hwirq); | ||||||
| 	set_sr(cached_irq_mask, intenable); | 	xtensa_set_sr(cached_irq_mask, intenable); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void xtensa_irq_unmask(struct irq_data *d) | static void xtensa_irq_unmask(struct irq_data *d) | ||||||
| { | { | ||||||
| 	cached_irq_mask |= 1 << d->hwirq; | 	cached_irq_mask |= 1 << d->hwirq; | ||||||
| 	set_sr(cached_irq_mask, intenable); | 	xtensa_set_sr(cached_irq_mask, intenable); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void xtensa_irq_enable(struct irq_data *d) | static void xtensa_irq_enable(struct irq_data *d) | ||||||
|  | @ -65,12 +65,12 @@ static void xtensa_irq_disable(struct irq_data *d) | ||||||
| 
 | 
 | ||||||
| static void xtensa_irq_ack(struct irq_data *d) | static void xtensa_irq_ack(struct irq_data *d) | ||||||
| { | { | ||||||
| 	set_sr(1 << d->hwirq, intclear); | 	xtensa_set_sr(1 << d->hwirq, intclear); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int xtensa_irq_retrigger(struct irq_data *d) | static int xtensa_irq_retrigger(struct irq_data *d) | ||||||
| { | { | ||||||
| 	set_sr(1 << d->hwirq, intset); | 	xtensa_set_sr(1 << d->hwirq, intset); | ||||||
| 	return 1; | 	return 1; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Max Filippov
						Max Filippov