summary refs log tree commit diff stats
path: root/hw/core
diff options
context:
space:
mode:
authorEric Auger <eric.auger@linaro.org>2015-07-06 12:15:14 -0600
committerAlex Williamson <alex.williamson@redhat.com>2015-07-06 12:15:14 -0600
commit715ca691daca081108b33306faa6fa102f0df8d8 (patch)
tree9c4288ee4bfca1ee39e85b800141a4ae6eb5f9f5 /hw/core
parent6a1a9cfa1c4a3e5b521d82e6adb94311fc5b9f8b (diff)
downloadfocaccia-qemu-715ca691daca081108b33306faa6fa102f0df8d8.tar.gz
focaccia-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')
-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 */