diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2011-02-07 14:55:35 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2011-02-19 06:58:15 -0500 |
commit | 6954b75b488dd740950573f244ddd66fd28620aa (patch) | |
tree | 66a423d8d09c19d428e3e73373944a826f31f38e | |
parent | 6f91a52d9bb28396177662f1da0f2e2cef9cf5d0 (diff) |
genirq: Move IRQ_POLL_INPROGRESS to core
No users outside of core.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r-- | include/linux/irq.h | 1 | ||||
-rw-r--r-- | kernel/irq/chip.c | 2 | ||||
-rw-r--r-- | kernel/irq/internals.h | 2 | ||||
-rw-r--r-- | kernel/irq/spurious.c | 6 |
4 files changed, 6 insertions, 5 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h index 67b77cfb2a34..047a695511df 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
@@ -69,7 +69,6 @@ typedef void (*irq_flow_handler_t)(unsigned int irq, | |||
69 | #define IRQ_SUSPENDED 0x04000000 /* IRQ has gone through suspend sequence */ | 69 | #define IRQ_SUSPENDED 0x04000000 /* IRQ has gone through suspend sequence */ |
70 | #define IRQ_ONESHOT 0x08000000 /* IRQ is not unmasked after hardirq */ | 70 | #define IRQ_ONESHOT 0x08000000 /* IRQ is not unmasked after hardirq */ |
71 | #define IRQ_NESTED_THREAD 0x10000000 /* IRQ is nested into another, no own handler thread */ | 71 | #define IRQ_NESTED_THREAD 0x10000000 /* IRQ is nested into another, no own handler thread */ |
72 | #define IRQ_POLL_INPROGRESS 0x20000000 /* IRQ poll is in progress */ | ||
73 | 72 | ||
74 | #define IRQF_MODIFY_MASK \ | 73 | #define IRQF_MODIFY_MASK \ |
75 | (IRQ_TYPE_SENSE_MASK | IRQ_NOPROBE | IRQ_NOREQUEST | \ | 74 | (IRQ_TYPE_SENSE_MASK | IRQ_NOPROBE | IRQ_NOREQUEST | \ |
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index bff21f233a02..34245e7d1213 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c | |||
@@ -400,7 +400,7 @@ EXPORT_SYMBOL_GPL(handle_nested_irq); | |||
400 | 400 | ||
401 | static bool irq_check_poll(struct irq_desc *desc) | 401 | static bool irq_check_poll(struct irq_desc *desc) |
402 | { | 402 | { |
403 | if (!(desc->status & IRQ_POLL_INPROGRESS)) | 403 | if (!(desc->istate & IRQS_POLL_INPROGRESS)) |
404 | return false; | 404 | return false; |
405 | return irq_wait_for_poll(desc); | 405 | return irq_wait_for_poll(desc); |
406 | } | 406 | } |
diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h index dc5e21b84f9e..f5d28e1e1eda 100644 --- a/kernel/irq/internals.h +++ b/kernel/irq/internals.h | |||
@@ -39,10 +39,12 @@ enum { | |||
39 | * IRQS_AUTODETECT - autodetection in progress | 39 | * IRQS_AUTODETECT - autodetection in progress |
40 | * IRQS_SPURIOUS_DISABLED - was disabled due to spurious interrupt | 40 | * IRQS_SPURIOUS_DISABLED - was disabled due to spurious interrupt |
41 | * detection | 41 | * detection |
42 | * IRQS_POLL_INPROGRESS - polling in progress | ||
42 | */ | 43 | */ |
43 | enum { | 44 | enum { |
44 | IRQS_AUTODETECT = 0x00000001, | 45 | IRQS_AUTODETECT = 0x00000001, |
45 | IRQS_SPURIOUS_DISABLED = 0x00000002, | 46 | IRQS_SPURIOUS_DISABLED = 0x00000002, |
47 | IRQS_POLL_INPROGRESS = 0x00000008, | ||
46 | }; | 48 | }; |
47 | 49 | ||
48 | #define irq_data_to_desc(data) container_of(data, struct irq_desc, irq_data) | 50 | #define irq_data_to_desc(data) container_of(data, struct irq_desc, irq_data) |
diff --git a/kernel/irq/spurious.c b/kernel/irq/spurious.c index 2941d8a22df7..21c46178b1a6 100644 --- a/kernel/irq/spurious.c +++ b/kernel/irq/spurious.c | |||
@@ -98,13 +98,13 @@ static int try_one_irq(int irq, struct irq_desc *desc, bool force) | |||
98 | } | 98 | } |
99 | 99 | ||
100 | /* Mark it poll in progress */ | 100 | /* Mark it poll in progress */ |
101 | desc->status |= IRQ_POLL_INPROGRESS; | 101 | desc->istate |= IRQS_POLL_INPROGRESS; |
102 | do { | 102 | do { |
103 | if (handle_irq_event(desc) == IRQ_HANDLED) | 103 | if (handle_irq_event(desc) == IRQ_HANDLED) |
104 | ret = IRQ_HANDLED; | 104 | ret = IRQ_HANDLED; |
105 | action = desc->action; | 105 | action = desc->action; |
106 | } while ((desc->status & IRQ_PENDING) && action); | 106 | } while ((desc->status & IRQ_PENDING) && action); |
107 | desc->status &= ~IRQ_POLL_INPROGRESS; | 107 | desc->istate &= ~IRQS_POLL_INPROGRESS; |
108 | out: | 108 | out: |
109 | raw_spin_unlock(&desc->lock); | 109 | raw_spin_unlock(&desc->lock); |
110 | return ret == IRQ_HANDLED; | 110 | return ret == IRQ_HANDLED; |
@@ -259,7 +259,7 @@ try_misrouted_irq(unsigned int irq, struct irq_desc *desc, | |||
259 | void note_interrupt(unsigned int irq, struct irq_desc *desc, | 259 | void note_interrupt(unsigned int irq, struct irq_desc *desc, |
260 | irqreturn_t action_ret) | 260 | irqreturn_t action_ret) |
261 | { | 261 | { |
262 | if (desc->status & IRQ_POLL_INPROGRESS) | 262 | if (desc->istate & IRQS_POLL_INPROGRESS) |
263 | return; | 263 | return; |
264 | 264 | ||
265 | if (unlikely(action_ret != IRQ_HANDLED)) { | 265 | if (unlikely(action_ret != IRQ_HANDLED)) { |