aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/irq.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/irq.h')
-rw-r--r--include/linux/irq.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h
index a71dd18639fb..39c23786c1db 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -59,6 +59,7 @@ typedef void (*irq_preflow_handler_t)(struct irq_data *data);
59 * IRQ_NOPROBE - Interrupt cannot be probed by autoprobing 59 * IRQ_NOPROBE - Interrupt cannot be probed by autoprobing
60 * IRQ_NOREQUEST - Interrupt cannot be requested via 60 * IRQ_NOREQUEST - Interrupt cannot be requested via
61 * request_irq() 61 * request_irq()
62 * IRQ_NOTHREAD - Interrupt cannot be threaded
62 * IRQ_NOAUTOEN - Interrupt is not automatically enabled in 63 * IRQ_NOAUTOEN - Interrupt is not automatically enabled in
63 * request/setup_irq() 64 * request/setup_irq()
64 * IRQ_NO_BALANCING - Interrupt cannot be balanced (affinity set) 65 * IRQ_NO_BALANCING - Interrupt cannot be balanced (affinity set)
@@ -85,6 +86,7 @@ enum {
85 IRQ_NO_BALANCING = (1 << 13), 86 IRQ_NO_BALANCING = (1 << 13),
86 IRQ_MOVE_PCNTXT = (1 << 14), 87 IRQ_MOVE_PCNTXT = (1 << 14),
87 IRQ_NESTED_THREAD = (1 << 15), 88 IRQ_NESTED_THREAD = (1 << 15),
89 IRQ_NOTHREAD = (1 << 16),
88}; 90};
89 91
90#define IRQF_MODIFY_MASK \ 92#define IRQF_MODIFY_MASK \
@@ -422,7 +424,7 @@ irq_set_handler(unsigned int irq, irq_flow_handler_t handle)
422/* 424/*
423 * Set a highlevel chained flow handler for a given IRQ. 425 * Set a highlevel chained flow handler for a given IRQ.
424 * (a chained handler is automatically enabled and set to 426 * (a chained handler is automatically enabled and set to
425 * IRQ_NOREQUEST and IRQ_NOPROBE) 427 * IRQ_NOREQUEST, IRQ_NOPROBE, and IRQ_NOTHREAD)
426 */ 428 */
427static inline void 429static inline void
428irq_set_chained_handler(unsigned int irq, irq_flow_handler_t handle) 430irq_set_chained_handler(unsigned int irq, irq_flow_handler_t handle)
@@ -452,6 +454,16 @@ static inline void irq_set_probe(unsigned int irq)
452 irq_modify_status(irq, IRQ_NOPROBE, 0); 454 irq_modify_status(irq, IRQ_NOPROBE, 0);
453} 455}
454 456
457static inline void irq_set_nothread(unsigned int irq)
458{
459 irq_modify_status(irq, 0, IRQ_NOTHREAD);
460}
461
462static inline void irq_set_thread(unsigned int irq)
463{
464 irq_modify_status(irq, IRQ_NOTHREAD, 0);
465}
466
455static inline void irq_set_nested_thread(unsigned int irq, bool nest) 467static inline void irq_set_nested_thread(unsigned int irq, bool nest)
456{ 468{
457 if (nest) 469 if (nest)