aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/irq.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2006-06-29 05:25:03 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-29 13:26:26 -0400
commit47c2a3aa4475d27073dd3c7e183fcc13f495c8f5 (patch)
treed151e03da804103753977c2c94e17b71104e3d35 /include/linux/irq.h
parentf702d7013c7470284843a6370aaa53b8b75c5a40 (diff)
[PATCH] genirq: add chip->eoi(), fastack -> fasteoi
Clean up the fastack concept by turning it into fasteoi and introducing the ->eoi() method for chips. This also allows the cleanup of an i386 EOI quirk - now the quirk is cleanly separated from the pure ACK implementation. Signed-off-by: Ingo Molnar <mingo@elte.hu> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Roland Dreier <rolandd@cisco.com> 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.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h
index 0d8eaf3e4036..0832149cdb18 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -74,7 +74,8 @@ struct proc_dir_entry;
74 * @mask: mask an interrupt source 74 * @mask: mask an interrupt source
75 * @mask_ack: ack and mask an interrupt source 75 * @mask_ack: ack and mask an interrupt source
76 * @unmask: unmask an interrupt source 76 * @unmask: unmask an interrupt source
77 * @end: end of interrupt 77 * @eoi: end of interrupt - chip level
78 * @end: end of interrupt - flow level
78 * @set_affinity: set the CPU affinity on SMP machines 79 * @set_affinity: set the CPU affinity on SMP machines
79 * @retrigger: resend an IRQ to the CPU 80 * @retrigger: resend an IRQ to the CPU
80 * @set_type: set the flow type (IRQ_TYPE_LEVEL/etc.) of an IRQ 81 * @set_type: set the flow type (IRQ_TYPE_LEVEL/etc.) of an IRQ
@@ -94,6 +95,7 @@ struct irq_chip {
94 void (*mask)(unsigned int irq); 95 void (*mask)(unsigned int irq);
95 void (*mask_ack)(unsigned int irq); 96 void (*mask_ack)(unsigned int irq);
96 void (*unmask)(unsigned int irq); 97 void (*unmask)(unsigned int irq);
98 void (*eoi)(unsigned int irq);
97 99
98 void (*end)(unsigned int irq); 100 void (*end)(unsigned int irq);
99 void (*set_affinity)(unsigned int irq, cpumask_t dest); 101 void (*set_affinity)(unsigned int irq, cpumask_t dest);
@@ -287,7 +289,7 @@ extern int handle_IRQ_event(unsigned int irq, struct pt_regs *regs,
287extern void fastcall 289extern void fastcall
288handle_level_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs); 290handle_level_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs);
289extern void fastcall 291extern void fastcall
290handle_fastack_irq(unsigned int irq, struct irq_desc *desc, 292handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc,
291 struct pt_regs *regs); 293 struct pt_regs *regs);
292extern void fastcall 294extern void fastcall
293handle_edge_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs); 295handle_edge_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs);