aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/irq.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2006-06-29 05:24:41 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-29 13:26:22 -0400
commit71d218b75fa91219c6bd310fbdd257dfbcac6c88 (patch)
treeec350128251756db243ad046a11ee732a00a5f07 /include/linux/irq.h
parent34ffdb7233d5847808d2b63ca6761dac3af9c942 (diff)
[PATCH] genirq: cleanup: include/linux/irq.h
Small cleanups in include/linux/irq.h. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/irq.h')
-rw-r--r--include/linux/irq.h56
1 files changed, 28 insertions, 28 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h
index 9ce276a2374a..c13f23dee286 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -45,17 +45,17 @@
45 * to describe about the low-level hardware. 45 * to describe about the low-level hardware.
46 */ 46 */
47struct hw_interrupt_type { 47struct hw_interrupt_type {
48 const char *typename; 48 const char *typename;
49 unsigned int (*startup)(unsigned int irq); 49 unsigned int (*startup)(unsigned int irq);
50 void (*shutdown)(unsigned int irq); 50 void (*shutdown)(unsigned int irq);
51 void (*enable)(unsigned int irq); 51 void (*enable)(unsigned int irq);
52 void (*disable)(unsigned int irq); 52 void (*disable)(unsigned int irq);
53 void (*ack)(unsigned int irq); 53 void (*ack)(unsigned int irq);
54 void (*end)(unsigned int irq); 54 void (*end)(unsigned int irq);
55 void (*set_affinity)(unsigned int irq, cpumask_t dest); 55 void (*set_affinity)(unsigned int irq, cpumask_t dest);
56 /* Currently used only by UML, might disappear one day.*/ 56 /* Currently used only by UML, might disappear one day.*/
57#ifdef CONFIG_IRQ_RELEASE_METHOD 57#ifdef CONFIG_IRQ_RELEASE_METHOD
58 void (*release)(unsigned int irq, void *dev_id); 58 void (*release)(unsigned int irq, void *dev_id);
59#endif 59#endif
60}; 60};
61 61
@@ -69,19 +69,19 @@ typedef struct hw_interrupt_type hw_irq_controller;
69 * Pad this out to 32 bytes for cache and indexing reasons. 69 * Pad this out to 32 bytes for cache and indexing reasons.
70 */ 70 */
71struct irq_desc { 71struct irq_desc {
72 hw_irq_controller *chip; 72 hw_irq_controller *chip;
73 void *chip_data; 73 void *chip_data;
74 struct irqaction *action; /* IRQ action list */ 74 struct irqaction *action; /* IRQ action list */
75 unsigned int status; /* IRQ status */ 75 unsigned int status; /* IRQ status */
76 unsigned int depth; /* nested irq disables */ 76 unsigned int depth; /* nested irq disables */
77 unsigned int irq_count; /* For detecting broken interrupts */ 77 unsigned int irq_count; /* For detecting broken IRQs */
78 unsigned int irqs_unhandled; 78 unsigned int irqs_unhandled;
79 spinlock_t lock; 79 spinlock_t lock;
80#ifdef CONFIG_SMP 80#ifdef CONFIG_SMP
81 cpumask_t affinity; 81 cpumask_t affinity;
82#endif 82#endif
83#if defined(CONFIG_GENERIC_PENDING_IRQ) || defined(CONFIG_IRQBALANCE) 83#if defined(CONFIG_GENERIC_PENDING_IRQ) || defined(CONFIG_IRQBALANCE)
84 unsigned int move_irq; /* Flag need to re-target intr dest*/ 84 unsigned int move_irq; /* need to re-target IRQ dest */
85#endif 85#endif
86} ____cacheline_aligned; 86} ____cacheline_aligned;
87 87
@@ -186,6 +186,15 @@ static inline void set_balance_irq_affinity(unsigned int irq, cpumask_t mask)
186} 186}
187#endif 187#endif
188 188
189#ifdef CONFIG_AUTO_IRQ_AFFINITY
190extern int select_smp_affinity(unsigned int irq);
191#else
192static inline int select_smp_affinity(unsigned int irq)
193{
194 return 1;
195}
196#endif
197
189extern int no_irq_affinity; 198extern int no_irq_affinity;
190extern int noirqdebug_setup(char *str); 199extern int noirqdebug_setup(char *str);
191 200
@@ -202,15 +211,6 @@ extern int can_request_irq(unsigned int irq, unsigned long irqflags);
202 211
203extern void init_irq_proc(void); 212extern void init_irq_proc(void);
204 213
205#ifdef CONFIG_AUTO_IRQ_AFFINITY
206extern int select_smp_affinity(unsigned int irq);
207#else
208static inline int select_smp_affinity(unsigned int irq)
209{
210 return 1;
211}
212#endif
213
214#endif /* CONFIG_GENERIC_HARDIRQS */ 214#endif /* CONFIG_GENERIC_HARDIRQS */
215 215
216extern hw_irq_controller no_irq_type; /* needed in every arch ? */ 216extern hw_irq_controller no_irq_type; /* needed in every arch ? */