summaryrefslogtreecommitdiffstats
path: root/kernel/irq/chip.c
diff options
context:
space:
mode:
authorThomas Gleixner2015-05-18 23:59:13 +0200
committerThomas Gleixner2015-05-18 23:59:33 +0200
commit939ef66848ea2b069d938146332fe07e8b6c84af (patch)
tree8d69247238065db0437970fe512a9ecfec3a5541 /kernel/irq/chip.c
parentgenirq: Don't suspend nested_thread irqs over system suspend (diff)
parentirqchip: vf610-mscm: Support NVIC parent chip (diff)
downloadkernel-qcow2-linux-939ef66848ea2b069d938146332fe07e8b6c84af.tar.gz
kernel-qcow2-linux-939ef66848ea2b069d938146332fe07e8b6c84af.tar.xz
kernel-qcow2-linux-939ef66848ea2b069d938146332fe07e8b6c84af.zip
Merge branch 'irq/for-arm' into irq/core
Pull in the branch which can be consumed by ARM to build their changes on top.
Diffstat (limited to 'kernel/irq/chip.c')
-rw-r--r--kernel/irq/chip.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index eb9a4ea394ab..2456fe89719c 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -876,6 +876,34 @@ void irq_cpu_offline(void)
#ifdef CONFIG_IRQ_DOMAIN_HIERARCHY
/**
+ * irq_chip_enable_parent - Enable the parent interrupt (defaults to unmask if
+ * NULL)
+ * @data: Pointer to interrupt specific data
+ */
+void irq_chip_enable_parent(struct irq_data *data)
+{
+ data = data->parent_data;
+ if (data->chip->irq_enable)
+ data->chip->irq_enable(data);
+ else
+ data->chip->irq_unmask(data);
+}
+
+/**
+ * irq_chip_disable_parent - Disable the parent interrupt (defaults to mask if
+ * NULL)
+ * @data: Pointer to interrupt specific data
+ */
+void irq_chip_disable_parent(struct irq_data *data)
+{
+ data = data->parent_data;
+ if (data->chip->irq_disable)
+ data->chip->irq_disable(data);
+ else
+ data->chip->irq_mask(data);
+}
+
+/**
* irq_chip_ack_parent - Acknowledge the parent interrupt
* @data: Pointer to interrupt specific data
*/