|
@@ -875,6 +875,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
|