diff options
Diffstat (limited to 'include/linux/sh_intc.h')
| -rw-r--r-- | include/linux/sh_intc.h | 26 | 
1 files changed, 24 insertions, 2 deletions
diff --git a/include/linux/sh_intc.h b/include/linux/sh_intc.h index 51d288d8ac88..0d6cd38e673d 100644 --- a/include/linux/sh_intc.h +++ b/include/linux/sh_intc.h @@ -1,6 +1,8 @@  #ifndef __SH_INTC_H  #define __SH_INTC_H +#include <linux/ioport.h> +  typedef unsigned char intc_enum;  struct intc_vect { @@ -21,6 +23,9 @@ struct intc_group {  struct intc_mask_reg {  	unsigned long set_reg, clr_reg, reg_width;  	intc_enum enum_ids[32]; +#ifdef CONFIG_INTC_BALANCING +	unsigned long dist_reg; +#endif  #ifdef CONFIG_SMP  	unsigned long smp;  #endif @@ -39,8 +44,14 @@ struct intc_sense_reg {  	intc_enum enum_ids[16];  }; +#ifdef CONFIG_INTC_BALANCING +#define INTC_SMP_BALANCING(reg)	.dist_reg = (reg) +#else +#define INTC_SMP_BALANCING(reg) +#endif +  #ifdef CONFIG_SMP -#define INTC_SMP(stride, nr) .smp = (stride) | ((nr) << 8) +#define INTC_SMP(stride, nr)	.smp = (stride) | ((nr) << 8)  #else  #define INTC_SMP(stride, nr)  #endif @@ -71,6 +82,8 @@ struct intc_hw_desc {  struct intc_desc {  	char *name; +	struct resource *resource; +	unsigned int num_resources;  	intc_enum force_enable;  	intc_enum force_disable;  	struct intc_hw_desc hw; @@ -92,9 +105,18 @@ struct intc_desc symbol __initdata = {					\  			   prio_regs, sense_regs, ack_regs),		\  } -void __init register_intc_controller(struct intc_desc *desc); +int __init register_intc_controller(struct intc_desc *desc);  int intc_set_priority(unsigned int irq, unsigned int prio); +#ifdef CONFIG_INTC_USERIMASK +int register_intc_userimask(unsigned long addr); +#else +static inline int register_intc_userimask(unsigned long addr) +{ +	return 0; +} +#endif +  int reserve_irq_vector(unsigned int irq);  void reserve_irq_legacy(void);  |