diff options
author | Stefan Agner <stefan.agner@toradex.com> | 2015-05-28 14:27:30 +0200 |
---|---|---|
committer | Stefan Agner <stefan.agner@toradex.com> | 2015-05-28 14:42:42 +0200 |
commit | 223937ea36d692f4bc626066a6c0ac66bd56cbcd (patch) | |
tree | 480686560ac0a89aa39549277a9a6ac728042a01 | |
parent | 0c60be648d6b7ddb1e42ca1970f6f2342f259568 (diff) |
irqchip: vf610-mscm-ir: allow to enable/disable CPU2CPU interrupts
Extend the CPU2CPU interrupt API with enable/disable which allow to
enable and disable the interrupts using the CPU2CPU IRQ numbers 0-3.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
-rw-r--r-- | drivers/irqchip/irq-vf610-mscm-ir.c | 21 | ||||
-rw-r--r-- | include/linux/vf610_mscm.h | 2 |
2 files changed, 23 insertions, 0 deletions
diff --git a/drivers/irqchip/irq-vf610-mscm-ir.c b/drivers/irqchip/irq-vf610-mscm-ir.c index 25c3b1337950..cb69a5901bc6 100644 --- a/drivers/irqchip/irq-vf610-mscm-ir.c +++ b/drivers/irqchip/irq-vf610-mscm-ir.c @@ -243,6 +243,27 @@ void mscm_trigger_cpu2cpu_irq(unsigned int intid, int cpuid) } EXPORT_SYMBOL(mscm_trigger_cpu2cpu_irq); +void mscm_enable_cpu2cpu_irq(unsigned int intid) +{ + struct mscm_cpu2cpu_irq_data *data = &cpu2cpu_irq_data[intid]; + + if (intid >= MSCM_CPU2CPU_NUM) + return; + + enable_irq(data->irq); +} +EXPORT_SYMBOL(mscm_enable_cpu2cpu_irq); + +void mscm_disable_cpu2cpu_irq(unsigned int intid) +{ + struct mscm_cpu2cpu_irq_data *data = &cpu2cpu_irq_data[intid]; + + if (intid >= MSCM_CPU2CPU_NUM) + return; + + disable_irq(data->irq); +} +EXPORT_SYMBOL(mscm_disable_cpu2cpu_irq); static int __init vf610_mscm_ir_of_init(struct device_node *node, struct device_node *parent) diff --git a/include/linux/vf610_mscm.h b/include/linux/vf610_mscm.h index 881fbd772a95..e61c71caca87 100644 --- a/include/linux/vf610_mscm.h +++ b/include/linux/vf610_mscm.h @@ -7,5 +7,7 @@ int mscm_request_cpu2cpu_irq(unsigned int intid, irq_handler_t handler, const char *name, void *priv); void mscm_free_cpu2cpu_irq(unsigned int intid, void *priv); void mscm_trigger_cpu2cpu_irq(unsigned int intid, int cpuid); +void mscm_enable_cpu2cpu_irq(unsigned int intid); +void mscm_disable_cpu2cpu_irq(unsigned int intid); #endif /* __VF610_MSCM__ */ |