aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-arm/irq.h
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2006-07-01 17:30:09 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-07-01 17:30:09 -0400
commit4a2581a080098ca3a0c4e416d7a282e96c75ebf8 (patch)
tree6709b53f00a271fe8dd76b6cfb821419c8afb206 /include/asm-arm/irq.h
parentf8b5473fcbddbfde827ecf82aa0e81fa2a878220 (diff)
[ARM] 3692/1: ARM: coswitch irq handling to the generic implementation
Patch from Thomas Gleixner From: Thomas Gleixner <tglx@linutronix.de> Switch the ARM irq core handling to the generic implementation. The ARM specific header files now contain mostly migration stubs and helper macros. Note that each machine type must be converted after this step seperately. This was seperated out from the patch for easier review. The main changes for the machine type code is the conversion of the type handlers to a 'type flow' and 'chip' model. This affects only the multiplex interrupt handlers. A conversion macro needs to be added to those implementations, which defines the data structure which is registered by the set_irq_chained_handler() macro. Some minor fixups of include files and the conversion of data structure access is necessary all over the place. The mostly macro based conversion was provided to allow an easy migration of the existing implementations. The code compiles on all defconfigs available in arch/arm/configs except those which were broken also before applying the conversion patches. The code has been boot and runtime tested on most ARM platforms. The results of an extensive testing and bugfixing series can be found at: http://www.linutronix.de/index.php?page=testing Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'include/asm-arm/irq.h')
-rw-r--r--include/asm-arm/irq.h22
1 files changed, 6 insertions, 16 deletions
diff --git a/include/asm-arm/irq.h b/include/asm-arm/irq.h
index 66e67e60bc56..283af50a16cb 100644
--- a/include/asm-arm/irq.h
+++ b/include/asm-arm/irq.h
@@ -21,18 +21,13 @@
21 21
22struct irqaction; 22struct irqaction;
23 23
24extern void disable_irq_nosync(unsigned int);
25extern void disable_irq(unsigned int);
26extern void enable_irq(unsigned int);
27
28/* 24/*
29 * These correspond with the SA_TRIGGER_* defines, and therefore the 25 * Migration helpers
30 * IORESOURCE_IRQ_* defines.
31 */ 26 */
32#define __IRQT_RISEDGE (1 << 0) 27#define __IRQT_FALEDGE IRQ_TYPE_EDGE_FALLING
33#define __IRQT_FALEDGE (1 << 1) 28#define __IRQT_RISEDGE IRQ_TYPE_EDGE_RISING
34#define __IRQT_HIGHLVL (1 << 2) 29#define __IRQT_LOWLVL IRQ_TYPE_LEVEL_LOW
35#define __IRQT_LOWLVL (1 << 3) 30#define __IRQT_HIGHLVL IRQ_TYPE_LEVEL_HIGH
36 31
37#define IRQT_NOEDGE (0) 32#define IRQT_NOEDGE (0)
38#define IRQT_RISING (__IRQT_RISEDGE) 33#define IRQT_RISING (__IRQT_RISEDGE)
@@ -40,12 +35,7 @@ extern void enable_irq(unsigned int);
40#define IRQT_BOTHEDGE (__IRQT_RISEDGE|__IRQT_FALEDGE) 35#define IRQT_BOTHEDGE (__IRQT_RISEDGE|__IRQT_FALEDGE)
41#define IRQT_LOW (__IRQT_LOWLVL) 36#define IRQT_LOW (__IRQT_LOWLVL)
42#define IRQT_HIGH (__IRQT_HIGHLVL) 37#define IRQT_HIGH (__IRQT_HIGHLVL)
43#define IRQT_PROBE (1 << 4) 38#define IRQT_PROBE IRQ_TYPE_PROBE
44
45int set_irq_type(unsigned int irq, unsigned int type);
46void disable_irq_wake(unsigned int irq);
47void enable_irq_wake(unsigned int irq);
48int setup_irq(unsigned int, struct irqaction *);
49 39
50extern void migrate_irqs(void); 40extern void migrate_irqs(void);
51#endif 41#endif