Since pc_init1() has access to the ISABus*, retrieve the
ISA IRQs with isa_bus_get_irq().
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/i386/pc_piix.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 126b6c11df..1e90b9ff0d 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -277,7 +277,13 @@ static void pc_init1(MachineState *machine,
if (pcmc->pci_enabled) {
PCIDevice *dev;
- dev = pci_create_simple(pci_bus, piix3_devfn + 1, TYPE_PIIX3_IDE);
+ dev = pci_new_multifunction(piix3_devfn + 1, false, TYPE_PIIX3_IDE);
+ qdev_connect_gpio_out_named(DEVICE(dev), "ide-irq", 0,
+ isa_bus_get_irq(isa_bus, 14));
+ qdev_connect_gpio_out_named(DEVICE(dev), "ide-irq", 1,
+ isa_bus_get_irq(isa_bus, 15));
+ pci_realize_and_unref(dev, pci_bus, &error_fatal);
+
pci_ide_create_devs(dev);
idebus[0] = qdev_get_child_bus(&dev->qdev, "ide.0");
idebus[1] = qdev_get_child_bus(&dev->qdev, "ide.1");