diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2011-02-07 15:48:49 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2011-02-19 06:58:16 -0500 |
commit | 009b4c3b8ad584b3462734127a5bec680d5d6af4 (patch) | |
tree | f7cb860dde86ba96afcc085ec7a75ca2a41e49b6 /kernel/irq/internals.h | |
parent | 6954b75b488dd740950573f244ddd66fd28620aa (diff) |
genirq: Add IRQ_INPROGRESS to core
We need to maintain the flag for now in both fields status and istate.
Add a CONFIG_GENERIC_HARDIRQS_NO_COMPAT switch to allow testing w/o
the status one. Wrap the access to status IRQ_INPROGRESS in a inline
which can be turned of with CONFIG_GENERIC_HARDIRQS_NO_COMPAT along
with the define.
There is no reason that anything outside of core looks at this. That
needs some modifications, but we'll get there.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/irq/internals.h')
-rw-r--r-- | kernel/irq/internals.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h index f5d28e1e1eda..d1cb1f8df6fe 100644 --- a/kernel/irq/internals.h +++ b/kernel/irq/internals.h | |||
@@ -13,6 +13,7 @@ | |||
13 | # define IRQ_BITMAP_BITS NR_IRQS | 13 | # define IRQ_BITMAP_BITS NR_IRQS |
14 | #endif | 14 | #endif |
15 | 15 | ||
16 | #include "compat.h" | ||
16 | #include "settings.h" | 17 | #include "settings.h" |
17 | 18 | ||
18 | #define istate core_internal_state__do_not_mess_with_it | 19 | #define istate core_internal_state__do_not_mess_with_it |
@@ -40,11 +41,13 @@ enum { | |||
40 | * IRQS_SPURIOUS_DISABLED - was disabled due to spurious interrupt | 41 | * IRQS_SPURIOUS_DISABLED - was disabled due to spurious interrupt |
41 | * detection | 42 | * detection |
42 | * IRQS_POLL_INPROGRESS - polling in progress | 43 | * IRQS_POLL_INPROGRESS - polling in progress |
44 | * IRQS_INPROGRESS - Interrupt in progress | ||
43 | */ | 45 | */ |
44 | enum { | 46 | enum { |
45 | IRQS_AUTODETECT = 0x00000001, | 47 | IRQS_AUTODETECT = 0x00000001, |
46 | IRQS_SPURIOUS_DISABLED = 0x00000002, | 48 | IRQS_SPURIOUS_DISABLED = 0x00000002, |
47 | IRQS_POLL_INPROGRESS = 0x00000008, | 49 | IRQS_POLL_INPROGRESS = 0x00000008, |
50 | IRQS_INPROGRESS = 0x00000010, | ||
48 | }; | 51 | }; |
49 | 52 | ||
50 | #define irq_data_to_desc(data) container_of(data, struct irq_desc, irq_data) | 53 | #define irq_data_to_desc(data) container_of(data, struct irq_desc, irq_data) |
@@ -128,7 +131,6 @@ static inline void print_irq_desc(unsigned int irq, struct irq_desc *desc) | |||
128 | print_symbol("%s\n", (unsigned long)desc->action->handler); | 131 | print_symbol("%s\n", (unsigned long)desc->action->handler); |
129 | } | 132 | } |
130 | 133 | ||
131 | P(IRQ_INPROGRESS); | ||
132 | P(IRQ_DISABLED); | 134 | P(IRQ_DISABLED); |
133 | P(IRQ_PENDING); | 135 | P(IRQ_PENDING); |
134 | P(IRQ_REPLAY); | 136 | P(IRQ_REPLAY); |
@@ -143,6 +145,7 @@ static inline void print_irq_desc(unsigned int irq, struct irq_desc *desc) | |||
143 | P(IRQ_NOAUTOEN); | 145 | P(IRQ_NOAUTOEN); |
144 | 146 | ||
145 | PS(IRQS_AUTODETECT); | 147 | PS(IRQS_AUTODETECT); |
148 | PS(IRQS_INPROGRESS); | ||
146 | } | 149 | } |
147 | 150 | ||
148 | #undef P | 151 | #undef P |