hw/isa/vt82c686: Create rtc-time alias in boards instead

According to good QOM practice, an object should only deal with objects
of its own sub tree. Having devices create an alias on the machine
object doesn't respect this good practice. To resolve this, create the
alias in the machine's code.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Acked-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220901114127.53914-14-shentey@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
This commit is contained in:
Bernhard Beschow 2022-09-01 13:41:27 +02:00 committed by Philippe Mathieu-Daudé
parent 3ecb2e62f9
commit ff9105dabc
3 changed files with 8 additions and 2 deletions

View File

@ -632,8 +632,6 @@ static void via_isa_realize(PCIDevice *d, Error **errp)
if (!qdev_realize(DEVICE(&s->rtc), BUS(isa_bus), errp)) { if (!qdev_realize(DEVICE(&s->rtc), BUS(isa_bus), errp)) {
return; return;
} }
object_property_add_alias(qdev_get_machine(), "rtc-time", OBJECT(&s->rtc),
"date");
isa_connect_gpio_out(ISA_DEVICE(&s->rtc), 0, s->rtc.isairq); isa_connect_gpio_out(ISA_DEVICE(&s->rtc), 0, s->rtc.isairq);
for (i = 0; i < PCI_CONFIG_HEADER_SIZE; i++) { for (i = 0; i < PCI_CONFIG_HEADER_SIZE; i++) {

View File

@ -295,6 +295,10 @@ static void mips_fuloong2e_init(MachineState *machine)
pci_dev = pci_create_simple_multifunction(pci_bus, pci_dev = pci_create_simple_multifunction(pci_bus,
PCI_DEVFN(FULOONG2E_VIA_SLOT, 0), PCI_DEVFN(FULOONG2E_VIA_SLOT, 0),
true, TYPE_VT82C686B_ISA); true, TYPE_VT82C686B_ISA);
object_property_add_alias(OBJECT(machine), "rtc-time",
object_resolve_path_component(OBJECT(pci_dev),
"rtc"),
"date");
qdev_connect_gpio_out(DEVICE(pci_dev), 0, env->irq[5]); qdev_connect_gpio_out(DEVICE(pci_dev), 0, env->irq[5]);
dev = DEVICE(object_resolve_path_component(OBJECT(pci_dev), "ide")); dev = DEVICE(object_resolve_path_component(OBJECT(pci_dev), "ide"));

View File

@ -161,6 +161,10 @@ static void pegasos2_init(MachineState *machine)
/* VIA VT8231 South Bridge (multifunction PCI device) */ /* VIA VT8231 South Bridge (multifunction PCI device) */
via = pci_create_simple_multifunction(pci_bus, PCI_DEVFN(12, 0), true, via = pci_create_simple_multifunction(pci_bus, PCI_DEVFN(12, 0), true,
TYPE_VT8231_ISA); TYPE_VT8231_ISA);
object_property_add_alias(OBJECT(machine), "rtc-time",
object_resolve_path_component(OBJECT(via),
"rtc"),
"date");
qdev_connect_gpio_out(DEVICE(via), 0, qdev_connect_gpio_out(DEVICE(via), 0,
qdev_get_gpio_in_named(pm->mv, "gpp", 31)); qdev_get_gpio_in_named(pm->mv, "gpp", 31));