aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/irq/internals.h
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2011-02-07 15:48:49 -0500
committerThomas Gleixner <tglx@linutronix.de>2011-02-19 06:58:16 -0500
commit009b4c3b8ad584b3462734127a5bec680d5d6af4 (patch)
treef7cb860dde86ba96afcc085ec7a75ca2a41e49b6 /kernel/irq/internals.h
parent6954b75b488dd740950573f244ddd66fd28620aa (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.h5
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 */
44enum { 46enum {
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