diff options
Diffstat (limited to 'include/linux/irq.h')
-rw-r--r-- | include/linux/irq.h | 14 |
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 | */ |
427 | static inline void | 429 | static inline void |
428 | irq_set_chained_handler(unsigned int irq, irq_flow_handler_t handle) | 430 | irq_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 | ||
457 | static inline void irq_set_nothread(unsigned int irq) | ||
458 | { | ||
459 | irq_modify_status(irq, 0, IRQ_NOTHREAD); | ||
460 | } | ||
461 | |||
462 | static inline void irq_set_thread(unsigned int irq) | ||
463 | { | ||
464 | irq_modify_status(irq, IRQ_NOTHREAD, 0); | ||
465 | } | ||
466 | |||
455 | static inline void irq_set_nested_thread(unsigned int irq, bool nest) | 467 | static inline void irq_set_nested_thread(unsigned int irq, bool nest) |
456 | { | 468 | { |
457 | if (nest) | 469 | if (nest) |