summaryrefslogtreecommitdiff
path: root/include/linux/irq.h
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2011-02-14 13:33:16 +0100
committerThomas Gleixner <tglx@linutronix.de>2011-02-19 12:58:15 +0100
commit6f91a52d9bb28396177662f1da0f2e2cef9cf5d0 (patch)
tree0be983e2d1c1a622716cff61354f02e85ef3352e /include/linux/irq.h
parent7acdd53e5b2c55b6f7e3427e85e2f91fa814a4f9 (diff)
downloadlinux-6f91a52d9bb28396177662f1da0f2e2cef9cf5d0.tar.gz
genirq: Use modify_status for set_irq_nested_thread
No need for a separate function in the core code. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/linux/irq.h')
-rw-r--r--include/linux/irq.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h
index a900741b43ea..67b77cfb2a34 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -74,7 +74,7 @@ typedef void (*irq_flow_handler_t)(unsigned int irq,
#define IRQF_MODIFY_MASK \
(IRQ_TYPE_SENSE_MASK | IRQ_NOPROBE | IRQ_NOREQUEST | \
IRQ_NOAUTOEN | IRQ_MOVE_PCNTXT | IRQ_LEVEL | IRQ_NO_BALANCING | \
- IRQ_PER_CPU)
+ IRQ_PER_CPU | IRQ_NESTED_THREAD)
#ifdef CONFIG_IRQ_PER_CPU
# define CHECK_IRQ_PER_CPU(var) ((var) & IRQ_PER_CPU)
@@ -307,8 +307,6 @@ set_irq_chained_handler(unsigned int irq, irq_flow_handler_t handle)
__set_irq_handler(irq, handle, 1, NULL);
}
-extern void set_irq_nested_thread(unsigned int irq, int nest);
-
void irq_modify_status(unsigned int irq, unsigned long clr, unsigned long set);
static inline void irq_set_status_flags(unsigned int irq, unsigned long set)
@@ -331,6 +329,14 @@ static inline void irq_set_probe(unsigned int irq)
irq_modify_status(irq, IRQ_NOPROBE, 0);
}
+static inline void irq_set_nested_thread(unsigned int irq, bool nest)
+{
+ if (nest)
+ irq_set_status_flags(irq, IRQ_NESTED_THREAD);
+ else
+ irq_clear_status_flags(irq, IRQ_NESTED_THREAD);
+}
+
/* Handle dynamic irq creation and destruction */
extern unsigned int create_irq_nr(unsigned int irq_want, int node);
extern int create_irq(void);
@@ -448,6 +454,10 @@ static inline void set_irq_probe(unsigned int irq)
{
irq_set_probe(irq);
}
+static inline void set_irq_nested_thread(unsigned int irq, int nest)
+{
+ irq_set_nested_thread(irq, nest);
+}
#endif
int irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node);