diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2019-02-23 04:53:31 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2019-02-23 04:53:31 -0500 |
commit | a324ca9cad4736252c33c1e28cffe1d87f262d03 (patch) | |
tree | da64e14dd8432602634773b52073928c50dfb85c /include/linux/interrupt.h | |
parent | 4e6b26d23dc1faee318796d5c7f91b5692b1e6be (diff) | |
parent | 28528fca4908142bd1a3247956cba56c9c667d71 (diff) |
Merge tag 'irqchip-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/core
Pull irqchip updates from Marc Zyngier
- Core pseudo-NMI handling code
- Allow the default irq domain to be retrieved
- A new interrupt controller for the Loongson LS1X platform
- Affinity support for the SiFive PLIC
- Better support for the iMX irqsteer driver
- NUMA aware memory allocations for GICv3
- A handful of other fixes (i8259, GICv3, PLIC)
Diffstat (limited to 'include/linux/interrupt.h')
-rw-r--r-- | include/linux/interrupt.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index dcdddf4fa76b..690b238a44d5 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h | |||
@@ -156,6 +156,10 @@ __request_percpu_irq(unsigned int irq, irq_handler_t handler, | |||
156 | unsigned long flags, const char *devname, | 156 | unsigned long flags, const char *devname, |
157 | void __percpu *percpu_dev_id); | 157 | void __percpu *percpu_dev_id); |
158 | 158 | ||
159 | extern int __must_check | ||
160 | request_nmi(unsigned int irq, irq_handler_t handler, unsigned long flags, | ||
161 | const char *name, void *dev); | ||
162 | |||
159 | static inline int __must_check | 163 | static inline int __must_check |
160 | request_percpu_irq(unsigned int irq, irq_handler_t handler, | 164 | request_percpu_irq(unsigned int irq, irq_handler_t handler, |
161 | const char *devname, void __percpu *percpu_dev_id) | 165 | const char *devname, void __percpu *percpu_dev_id) |
@@ -164,9 +168,16 @@ request_percpu_irq(unsigned int irq, irq_handler_t handler, | |||
164 | devname, percpu_dev_id); | 168 | devname, percpu_dev_id); |
165 | } | 169 | } |
166 | 170 | ||
171 | extern int __must_check | ||
172 | request_percpu_nmi(unsigned int irq, irq_handler_t handler, | ||
173 | const char *devname, void __percpu *dev); | ||
174 | |||
167 | extern const void *free_irq(unsigned int, void *); | 175 | extern const void *free_irq(unsigned int, void *); |
168 | extern void free_percpu_irq(unsigned int, void __percpu *); | 176 | extern void free_percpu_irq(unsigned int, void __percpu *); |
169 | 177 | ||
178 | extern const void *free_nmi(unsigned int irq, void *dev_id); | ||
179 | extern void free_percpu_nmi(unsigned int irq, void __percpu *percpu_dev_id); | ||
180 | |||
170 | struct device; | 181 | struct device; |
171 | 182 | ||
172 | extern int __must_check | 183 | extern int __must_check |
@@ -217,6 +228,13 @@ extern void enable_percpu_irq(unsigned int irq, unsigned int type); | |||
217 | extern bool irq_percpu_is_enabled(unsigned int irq); | 228 | extern bool irq_percpu_is_enabled(unsigned int irq); |
218 | extern void irq_wake_thread(unsigned int irq, void *dev_id); | 229 | extern void irq_wake_thread(unsigned int irq, void *dev_id); |
219 | 230 | ||
231 | extern void disable_nmi_nosync(unsigned int irq); | ||
232 | extern void disable_percpu_nmi(unsigned int irq); | ||
233 | extern void enable_nmi(unsigned int irq); | ||
234 | extern void enable_percpu_nmi(unsigned int irq, unsigned int type); | ||
235 | extern int prepare_percpu_nmi(unsigned int irq); | ||
236 | extern void teardown_percpu_nmi(unsigned int irq); | ||
237 | |||
220 | /* The following three functions are for the core kernel use only. */ | 238 | /* The following three functions are for the core kernel use only. */ |
221 | extern void suspend_device_irqs(void); | 239 | extern void suspend_device_irqs(void); |
222 | extern void resume_device_irqs(void); | 240 | extern void resume_device_irqs(void); |