From: Parth Dixit <parth.di...@linaro.org> set edge/level type information for an interrupt
Signed-off-by: Parth Dixit <parth.di...@linaro.org> --- xen/arch/arm/irq.c | 19 +++++++++++++++++++ xen/include/asm-arm/irq.h | 4 ++++ 2 files changed, 23 insertions(+) diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c index 25ecf1d..ae4e99a 100644 --- a/xen/arch/arm/irq.c +++ b/xen/arch/arm/irq.c @@ -545,6 +545,25 @@ int platform_get_irq(const struct dt_device_node *device, int index) return irq; } +#if defined(CONFIG_ARM_64) && defined(CONFIG_ACPI) +int acpi_set_irq(int irq,int type) +{ + int res; + + /* Setup the IRQ type */ + if ( irq < NR_LOCAL_IRQS ) + res = irq_local_set_type(irq, type); + else + res = irq_set_spi_type(irq, type); + + if ( res ) + return -1; + + return 0; + +} +#endif + /* * Local variables: * mode: C diff --git a/xen/include/asm-arm/irq.h b/xen/include/asm-arm/irq.h index 435dfcd..7b09557 100644 --- a/xen/include/asm-arm/irq.h +++ b/xen/include/asm-arm/irq.h @@ -47,6 +47,10 @@ void arch_move_irqs(struct vcpu *v); /* Set IRQ type for an SPI */ int irq_set_spi_type(unsigned int spi, unsigned int type); +#if defined(CONFIG_ARM_64) && defined(CONFIG_ACPI) +int acpi_set_irq(int irq,int type); +#endif + int platform_get_irq(const struct dt_device_node *device, int index); void irq_set_affinity(struct irq_desc *desc, const cpumask_t *cpu_mask); -- 1.9.1 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel