diff options
author | Ingo Molnar <mingo@elte.hu> | 2006-06-29 05:25:03 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-29 13:26:26 -0400 |
commit | 47c2a3aa4475d27073dd3c7e183fcc13f495c8f5 (patch) | |
tree | d151e03da804103753977c2c94e17b71104e3d35 /include/linux | |
parent | f702d7013c7470284843a6370aaa53b8b75c5a40 (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')
-rw-r--r-- | include/linux/irq.h | 6 |
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, | |||
287 | extern void fastcall | 289 | extern void fastcall |
288 | handle_level_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs); | 290 | handle_level_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs); |
289 | extern void fastcall | 291 | extern void fastcall |
290 | handle_fastack_irq(unsigned int irq, struct irq_desc *desc, | 292 | handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc, |
291 | struct pt_regs *regs); | 293 | struct pt_regs *regs); |
292 | extern void fastcall | 294 | extern void fastcall |
293 | handle_edge_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs); | 295 | handle_edge_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs); |