aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndre Przywara <andre.przywara@arm.com>2014-12-17 15:40:47 +0000
committerWill Deacon <will.deacon@arm.com>2015-06-01 16:39:55 +0100
commit890ad914d0fefadbaebe61be3672a45675464a0b (patch)
tree37f0b6c9bb5dfe234a92a1ec27c7ffe31dc26e1f
parent2bfd9ac3cac4b83082dcd0bed38ee3d5f927d903 (diff)
downloadkvmtool-890ad914d0fefadbaebe61be3672a45675464a0b.tar.gz
kvmtool: ARM: advertise 8250 IRQs as level-triggered
Both the 16550/8250 UART emulation in kvmtool as well as all the drivers and DTBs for real hardware use level triggered interrutpts. But the device tree currently describes them as being edge triggered, which can lead to hangs in guests. Use the new IRQ type parameter to properly describe the interrupts. This goes along the lines of a similar QEMU patch: http://git.qemu.org/?p=qemu.git;a=commitdiff;h=0be969a2d974971628fc4ed95834d22ecf0fd497 Signed-off-by: Andre Przywara <andre.przywara@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
-rw-r--r--hw/serial.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/serial.c b/hw/serial.c
index 05b8fccd..270e6182 100644
--- a/hw/serial.c
+++ b/hw/serial.c
@@ -386,7 +386,7 @@ void serial8250_generate_fdt_node(struct ioport *ioport, void *fdt,
_FDT(fdt_begin_node(fdt, dev_name));
_FDT(fdt_property_string(fdt, "compatible", "ns16550a"));
_FDT(fdt_property(fdt, "reg", reg_prop, sizeof(reg_prop)));
- generate_irq_prop(fdt, dev->irq, IRQ_TYPE_EDGE_RISING);
+ generate_irq_prop(fdt, dev->irq, IRQ_TYPE_LEVEL_HIGH);
_FDT(fdt_property_cell(fdt, "clock-frequency", 1843200));
_FDT(fdt_end_node(fdt));
}