hw/isa/piix: Resolve duplicate code regarding PCI interrupt wiring
Now that both PIIX3 and PIIX4 use piix_set_irq() to trigger PCI IRQs the wiring in the respective realize methods can be shared, too. Signed-off-by: Bernhard Beschow <shentey@gmail.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Message-Id: <20231007123843.127151-28-shentey@gmail.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
0c9fd5a309
commit
a203cc532a
@ -372,6 +372,8 @@ static void pci_piix_realize(PCIDevice *dev, const char *uhci_type,
|
|||||||
}
|
}
|
||||||
qdev_connect_gpio_out(DEVICE(&d->pm), 0, d->isa_irqs_in[9]);
|
qdev_connect_gpio_out(DEVICE(&d->pm), 0, d->isa_irqs_in[9]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pci_bus_irqs(pci_bus, piix_set_pci_irq, d, PIIX_NUM_PIRQS);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void build_pci_isa_aml(AcpiDevAmlIf *adev, Aml *scope)
|
static void build_pci_isa_aml(AcpiDevAmlIf *adev, Aml *scope)
|
||||||
@ -453,7 +455,6 @@ static const TypeInfo piix_pci_type_info = {
|
|||||||
static void piix3_realize(PCIDevice *dev, Error **errp)
|
static void piix3_realize(PCIDevice *dev, Error **errp)
|
||||||
{
|
{
|
||||||
ERRP_GUARD();
|
ERRP_GUARD();
|
||||||
PIIXState *piix3 = PIIX_PCI_DEVICE(dev);
|
|
||||||
PCIBus *pci_bus = pci_get_bus(dev);
|
PCIBus *pci_bus = pci_get_bus(dev);
|
||||||
|
|
||||||
pci_piix_realize(dev, TYPE_PIIX3_USB_UHCI, errp);
|
pci_piix_realize(dev, TYPE_PIIX3_USB_UHCI, errp);
|
||||||
@ -461,7 +462,6 @@ static void piix3_realize(PCIDevice *dev, Error **errp)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
pci_bus_irqs(pci_bus, piix_set_pci_irq, piix3, PIIX_NUM_PIRQS);
|
|
||||||
pci_bus_set_route_irq_fn(pci_bus, piix_route_intx_pin_to_irq);
|
pci_bus_set_route_irq_fn(pci_bus, piix_route_intx_pin_to_irq);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -492,16 +492,7 @@ static const TypeInfo piix3_info = {
|
|||||||
|
|
||||||
static void piix4_realize(PCIDevice *dev, Error **errp)
|
static void piix4_realize(PCIDevice *dev, Error **errp)
|
||||||
{
|
{
|
||||||
ERRP_GUARD();
|
|
||||||
PIIXState *s = PIIX_PCI_DEVICE(dev);
|
|
||||||
PCIBus *pci_bus = pci_get_bus(dev);
|
|
||||||
|
|
||||||
pci_piix_realize(dev, TYPE_PIIX4_USB_UHCI, errp);
|
pci_piix_realize(dev, TYPE_PIIX4_USB_UHCI, errp);
|
||||||
if (*errp) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
pci_bus_irqs(pci_bus, piix_set_pci_irq, s, PIIX_NUM_PIRQS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void piix4_init(Object *obj)
|
static void piix4_init(Object *obj)
|
||||||
|
Loading…
Reference in New Issue
Block a user