mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
genirq: Add more helper functions to support stacked irq_chip
Add more helper function for stacked irq_chip to just call parent's function. Signed-off-by: Yingjoe Chen <[email protected]> Cc: Rob Herring <[email protected]> Cc: Pawel Moll <[email protected]> Cc: Mark Rutland <[email protected]> Cc: Matthias Brugger <[email protected]> Cc: Russell King <[email protected]> Cc: Jason Cooper <[email protected]> Cc: Gran Likely <[email protected]> Cc: Boris BREZILLON <[email protected]> Cc: <[email protected]> Cc: Bjorn Helgaas <[email protected]> Cc: Yijing Wang <[email protected]> Cc: <[email protected]> Cc: <[email protected]> Cc: <[email protected]> Cc: <[email protected]> Cc: <[email protected]> Cc: <[email protected]> Cc: Sascha Hauer <[email protected]> Cc: Jiang Liu <[email protected]> Cc: Marc Zyngier <[email protected]> Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Thomas Gleixner <[email protected]>
This commit is contained in:
parent
85f08c17de
commit
56e8abab61
2 changed files with 54 additions and 0 deletions
|
|
@ -862,6 +862,54 @@ void irq_chip_ack_parent(struct irq_data *data)
|
|||
data->chip->irq_ack(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* irq_chip_mask_parent - Mask the parent interrupt
|
||||
* @data: Pointer to interrupt specific data
|
||||
*/
|
||||
void irq_chip_mask_parent(struct irq_data *data)
|
||||
{
|
||||
data = data->parent_data;
|
||||
data->chip->irq_mask(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* irq_chip_unmask_parent - Unmask the parent interrupt
|
||||
* @data: Pointer to interrupt specific data
|
||||
*/
|
||||
void irq_chip_unmask_parent(struct irq_data *data)
|
||||
{
|
||||
data = data->parent_data;
|
||||
data->chip->irq_unmask(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* irq_chip_eoi_parent - Invoke EOI on the parent interrupt
|
||||
* @data: Pointer to interrupt specific data
|
||||
*/
|
||||
void irq_chip_eoi_parent(struct irq_data *data)
|
||||
{
|
||||
data = data->parent_data;
|
||||
data->chip->irq_eoi(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* irq_chip_set_affinity_parent - Set affinity on the parent interrupt
|
||||
* @data: Pointer to interrupt specific data
|
||||
* @dest: The affinity mask to set
|
||||
* @force: Flag to enforce setting (disable online checks)
|
||||
*
|
||||
* Conditinal, as the underlying parent chip might not implement it.
|
||||
*/
|
||||
int irq_chip_set_affinity_parent(struct irq_data *data,
|
||||
const struct cpumask *dest, bool force)
|
||||
{
|
||||
data = data->parent_data;
|
||||
if (data->chip->irq_set_affinity)
|
||||
return data->chip->irq_set_affinity(data, dest, force);
|
||||
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
/**
|
||||
* irq_chip_retrigger_hierarchy - Retrigger an interrupt in hardware
|
||||
* @data: Pointer to interrupt specific data
|
||||
|
|
|
|||
Loading…
Reference in a new issue