summaryrefslogtreecommitdiffstats
path: root/hw/core/sysbus.c
diff options
context:
space:
mode:
authorEric Auger2015-07-06 20:15:14 +0200
committerAlex Williamson2015-07-06 20:15:14 +0200
commit715ca691daca081108b33306faa6fa102f0df8d8 (patch)
tree9c4288ee4bfca1ee39e85b800141a4ae6eb5f9f5 /hw/core/sysbus.c
parentintc: arm_gic_kvm: set the qemu_irq/gsi mapping (diff)
downloadqemu-715ca691daca081108b33306faa6fa102f0df8d8.tar.gz
qemu-715ca691daca081108b33306faa6fa102f0df8d8.tar.xz
qemu-715ca691daca081108b33306faa6fa102f0df8d8.zip
sysbus: add irq_routing_notifier
Add a new connect_irq_notifier notifier in the SysBusDeviceClass. This notifier, if populated, is called after sysbus_connect_irq. This mechanism is used to setup VFIO signaling once VFIO platform devices get attached to their platform bus, on a machine init done notifier. Signed-off-by: Eric Auger <eric.auger@linaro.org> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> Tested-by: Vikram Sethi <vikrams@codeaurora.org> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Diffstat (limited to 'hw/core/sysbus.c')
-rw-r--r--hw/core/sysbus.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/hw/core/sysbus.c b/hw/core/sysbus.c
index 278a2d1bdd..3c58629894 100644
--- a/hw/core/sysbus.c
+++ b/hw/core/sysbus.c
@@ -109,7 +109,13 @@ qemu_irq sysbus_get_connected_irq(SysBusDevice *dev, int n)
void sysbus_connect_irq(SysBusDevice *dev, int n, qemu_irq irq)
{
+ SysBusDeviceClass *sbd = SYS_BUS_DEVICE_GET_CLASS(dev);
+
qdev_connect_gpio_out_named(DEVICE(dev), SYSBUS_DEVICE_GPIO_IRQ, n, irq);
+
+ if (sbd->connect_irq_notifier) {
+ sbd->connect_irq_notifier(dev, irq);
+ }
}
/* Check whether an MMIO region exists */