On Thu, Dec 11, 2014 at 04:30:33PM +0000, Andre Przywara wrote:
> 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 <[email protected]>
> ---
> tools/kvm/arm/fdt.c | 6 +++---
> tools/kvm/hw/serial.c | 5 +++--
> tools/kvm/include/kvm/ioport.h | 4 +++-
> tools/kvm/ioport.c | 6 ++++--
> tools/kvm/virtio/mmio.c | 5 +++--
> 5 files changed, 16 insertions(+), 10 deletions(-)
[...]
> @@ -71,7 +72,8 @@ static void generate_ioport_fdt_node(void *fdt,
> static void generate_ioport_fdt_node(void *fdt,
> struct device_header *dev_hdr,
> void (*generate_irq_prop)(void *fdt,
> - u8 irq))
> + u8 irq,
> + u32 irq_type))
> {
> die("Unable to generate device tree nodes without libfdt\n");
> }
> diff --git a/tools/kvm/virtio/mmio.c b/tools/kvm/virtio/mmio.c
> index 3a2bd62..28b0651 100644
> --- a/tools/kvm/virtio/mmio.c
> +++ b/tools/kvm/virtio/mmio.c
> @@ -233,7 +233,8 @@ static void virtio_mmio_mmio_callback(struct kvm_cpu
> *vcpu,
> static void generate_virtio_mmio_fdt_node(void *fdt,
> struct device_header *dev_hdr,
> void (*generate_irq_prop)(void *fdt,
> - u8 irq))
> + u8 irq,
> + u32 type))
> {
> char dev_name[DEVICE_NAME_MAX_LEN];
> struct virtio_mmio *vmmio = container_of(dev_hdr,
> @@ -250,7 +251,7 @@ static void generate_virtio_mmio_fdt_node(void *fdt,
> _FDT(fdt_begin_node(fdt, dev_name));
> _FDT(fdt_property_string(fdt, "compatible", "virtio,mmio"));
> _FDT(fdt_property(fdt, "reg", reg_prop, sizeof(reg_prop)));
> - generate_irq_prop(fdt, vmmio->irq);
> + generate_irq_prop(fdt, vmmio->irq, GIC_FDT_IRQ_FLAGS_EDGE_LO_HI);
This is a GIC-specific #define in arch-agnostic code. I think we should have
a new enum type for describing edge and level interrupts, then just use
that instead.
Will
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html