aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/linux/irq.h
diff options
context:
space:
mode:
authorMarc Zyngier <maz@kernel.org>2020-09-17 16:47:27 +0100
committerMarc Zyngier <maz@kernel.org>2020-09-17 16:47:27 +0100
commit7e62dd911ace44ff50d7891bc7821888eabfd61d (patch)
tree698542ab602a8ce934f33f79ba711fc7712e7fed /include/linux/irq.h
parentMerge remote-tracking branch 'origin/irq/gic-v3-nmi-ns' into irq/irqchip-next (diff)
parentirqchip/gic: Cleanup Franken-GIC handling (diff)
downloadwireguard-linux-7e62dd911ace44ff50d7891bc7821888eabfd61d.tar.xz
wireguard-linux-7e62dd911ace44ff50d7891bc7821888eabfd61d.zip
Merge remote-tracking branch 'origin/irq/ipi-as-irq' into irq/irqchip-next
Signed-off-by: Marc Zyngier <maz@kernel.org>
Diffstat (limited to 'include/linux/irq.h')
-rw-r--r--include/linux/irq.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h
index 1b7f4dfee35b..63b9d962ee67 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -71,6 +71,7 @@ enum irqchip_irq_state;
* it from the spurious interrupt detection
* mechanism and from core side polling.
* IRQ_DISABLE_UNLAZY - Disable lazy irq disable
+ * IRQ_HIDDEN - Don't show up in /proc/interrupts
*/
enum {
IRQ_TYPE_NONE = 0x00000000,
@@ -97,13 +98,14 @@ enum {
IRQ_PER_CPU_DEVID = (1 << 17),
IRQ_IS_POLLED = (1 << 18),
IRQ_DISABLE_UNLAZY = (1 << 19),
+ IRQ_HIDDEN = (1 << 20),
};
#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_NESTED_THREAD | IRQ_NOTHREAD | IRQ_PER_CPU_DEVID | \
- IRQ_IS_POLLED | IRQ_DISABLE_UNLAZY)
+ IRQ_IS_POLLED | IRQ_DISABLE_UNLAZY | IRQ_HIDDEN)
#define IRQ_NO_BALANCING_MASK (IRQ_PER_CPU | IRQ_NO_BALANCING)
@@ -634,6 +636,7 @@ static inline int irq_set_parent(int irq, int parent_irq)
*/
extern void handle_level_irq(struct irq_desc *desc);
extern void handle_fasteoi_irq(struct irq_desc *desc);
+extern void handle_percpu_devid_fasteoi_ipi(struct irq_desc *desc);
extern void handle_edge_irq(struct irq_desc *desc);
extern void handle_edge_eoi_irq(struct irq_desc *desc);
extern void handle_simple_irq(struct irq_desc *desc);