mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
arm/irq: Add helper function for setting interrupt type
Add a helper function to set edge/level type information for an interrupt. Signed-off-by: Parth Dixit <parth.dixit@linaro.org> Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org> Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
This commit is contained in:
1 parent
07390d3122
commit
800c57d6f1
2 files changed
+19
-12
No files matched your search
+17
-12
@@ -655,27 +655,32 @@ unlock:
|
||||
return ret;
|
||||
}
|
||||
|
||||
int platform_get_irq(const struct dt_device_node *device, int index)
|
||||
int irq_set_type(unsigned int irq, unsigned int type)
|
||||
{
|
||||
struct dt_irq dt_irq;
|
||||
unsigned int type, irq;
|
||||
int res;
|
||||
|
||||
res = dt_device_get_irq(device, index, &dt_irq);
|
||||
if ( res )
|
||||
return -1;
|
||||
|
||||
irq = dt_irq.irq;
|
||||
type = dt_irq.type;
|
||||
|
||||
/* 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 res;
|
||||
}
|
||||
|
||||
int platform_get_irq(const struct dt_device_node *device, int index)
|
||||
{
|
||||
struct dt_irq dt_irq;
|
||||
unsigned int type, irq;
|
||||
|
||||
if ( dt_device_get_irq(device, index, &dt_irq) )
|
||||
return -1;
|
||||
|
||||
irq = dt_irq.irq;
|
||||
type = dt_irq.type;
|
||||
|
||||
if ( irq_set_type(irq, type) )
|
||||
return -1;
|
||||
|
||||
return irq;
|
||||
}
|
||||
|
||||
@@ -52,6 +52,8 @@ void arch_move_irqs(struct vcpu *v);
|
||||
/* Set IRQ type for an SPI */
|
||||
int irq_set_spi_type(unsigned int spi, unsigned int type);
|
||||
|
||||
int irq_set_type(unsigned int irq, unsigned int type);
|
||||
|
||||
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);
|
||||
|
||||