dino: return PCIBus from dino_init() using qdev_get_child_bus()

This allows access to the PCI bus without having to reference parent_obj directly.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Acked-by: Helge Deller <deller@gmx.de>
Message-Id: <20220504092600.10048-11-mark.cave-ayland@ilande.co.uk>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
This commit is contained in:
Mark Cave-Ayland 2022-05-04 10:25:20 +01:00
parent ee313d5abb
commit 079e7ad989

View File

@ -523,14 +523,12 @@ PCIBus *dino_init(MemoryRegion *addr_space,
{
DeviceState *dev;
DinoState *s;
PCIBus *b;
PCIBus *pci_bus;
dev = qdev_new(TYPE_DINO_PCI_HOST_BRIDGE);
object_property_set_link(OBJECT(dev), "memory-as", OBJECT(addr_space),
&error_fatal);
s = DINO_PCI_HOST_BRIDGE(dev);
b = s->parent_obj.bus;
sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
memory_region_add_subregion(addr_space, DINO_HPA,
@ -539,7 +537,8 @@ PCIBus *dino_init(MemoryRegion *addr_space,
*p_rtc_irq = qemu_allocate_irq(dino_set_timer_irq, s, 0);
*p_ser_irq = qemu_allocate_irq(dino_set_serial_irq, s, 0);
return b;
pci_bus = PCI_BUS(qdev_get_child_bus(dev, "pci"));
return pci_bus;
}
static void dino_pcihost_reset(DeviceState *dev)