genirq: introduce irq_chip_mask_ack_parent()
The hierarchical irqchip never before ran into a situation where the parent is not "simple", i.e. does not implement .irq_ack() and .irq_mask() like most, but the qcom-pm8xxx.c happens to implement only .irq_mask_ack(). Since we want to make ssbi-gpio a hierarchical child of this irqchip, it must *also* only implement .irq_mask_ack() and call down to the parent, and for this we of course need irq_chip_mask_ack_parent(). Cc: Marc Zyngier <marc.zyngier@arm.com> Cc: Thomas Gleixner <tglx@linutronix.de> Acked-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Brian Masney <masneyb@onstation.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
b5c231d8c8
commit
5aa5bd563c
|
@ -605,6 +605,7 @@ extern void irq_chip_disable_parent(struct irq_data *data);
|
|||
extern void irq_chip_ack_parent(struct irq_data *data);
|
||||
extern int irq_chip_retrigger_hierarchy(struct irq_data *data);
|
||||
extern void irq_chip_mask_parent(struct irq_data *data);
|
||||
extern void irq_chip_mask_ack_parent(struct irq_data *data);
|
||||
extern void irq_chip_unmask_parent(struct irq_data *data);
|
||||
extern void irq_chip_eoi_parent(struct irq_data *data);
|
||||
extern int irq_chip_set_affinity_parent(struct irq_data *data,
|
||||
|
|
|
@ -1277,6 +1277,17 @@ void irq_chip_mask_parent(struct irq_data *data)
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(irq_chip_mask_parent);
|
||||
|
||||
/**
|
||||
* irq_chip_mask_ack_parent - Mask and acknowledge the parent interrupt
|
||||
* @data: Pointer to interrupt specific data
|
||||
*/
|
||||
void irq_chip_mask_ack_parent(struct irq_data *data)
|
||||
{
|
||||
data = data->parent_data;
|
||||
data->chip->irq_mask_ack(data);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(irq_chip_mask_ack_parent);
|
||||
|
||||
/**
|
||||
* irq_chip_unmask_parent - Unmask the parent interrupt
|
||||
* @data: Pointer to interrupt specific data
|
||||
|
|
Loading…
Reference in New Issue