diff options
author | Andre Przywara <andre.przywara@arm.com> | 2014-12-17 15:40:46 +0000 |
---|---|---|
committer | Will Deacon <will.deacon@arm.com> | 2015-06-01 16:39:55 +0100 |
commit | 2bfd9ac3cac4b83082dcd0bed38ee3d5f927d903 (patch) | |
tree | e6e3b55f06dd7e55d73be62f861102b90abbfe60 /arm | |
parent | 045fc040c8310948c39b057970342c905f01f6b3 (diff) | |
download | kvmtool-2bfd9ac3cac4b83082dcd0bed38ee3d5f927d903.tar.gz |
kvmtool: ARM: allow level interrupts in device tree
Currently we describe every interrupt for each device in the FDT
as being edge triggered.
Add a parameter to the irq property generation to allow devices to
specify their interrupts as level triggered if needed.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arm')
-rw-r--r-- | arm/fdt.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -74,12 +74,12 @@ static void generate_cpu_nodes(void *fdt, struct kvm *kvm) _FDT(fdt_end_node(fdt)); } -static void generate_irq_prop(void *fdt, u8 irq) +static void generate_irq_prop(void *fdt, u8 irq, enum irq_type irq_type) { u32 irq_prop[] = { cpu_to_fdt32(GIC_FDT_IRQ_TYPE_SPI), cpu_to_fdt32(irq - GIC_SPI_IRQ_BASE), - cpu_to_fdt32(IRQ_TYPE_EDGE_RISING), + cpu_to_fdt32(irq_type) }; _FDT(fdt_property(fdt, "interrupts", irq_prop, sizeof(irq_prop))); @@ -127,7 +127,7 @@ static int setup_fdt(struct kvm *kvm) void *fdt_dest = guest_flat_to_host(kvm, kvm->arch.dtb_guest_start); void (*generate_mmio_fdt_nodes)(void *, struct device_header *, - void (*)(void *, u8)); + void (*)(void *, u8, enum irq_type)); void (*generate_cpu_peripheral_fdt_nodes)(void *, struct kvm *, u32) = kvm->cpus[0]->generate_fdt_nodes; |