aboutsummaryrefslogtreecommitdiff
path: root/hw/misc/macio
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2020-06-09 14:23:25 +0200
committerMarkus Armbruster <armbru@redhat.com>2020-06-15 21:36:21 +0200
commit33208432f5fdd459c98237872e480ef82f435419 (patch)
tree124b8c9acdd088fb463ae499187f34be9cf801bd /hw/misc/macio
parent3d81f594fdcd6c2737a52dcb19552a298f2af9e1 (diff)
downloadqemu-33208432f5fdd459c98237872e480ef82f435419.zip
qemu-33208432f5fdd459c98237872e480ef82f435419.tar.gz
qemu-33208432f5fdd459c98237872e480ef82f435419.tar.bz2
macio: Delete unused "macio-gpio" devices
These devices go with the "via-pmu" device, which is controlled by property "has-pmu". macio_newworld_init() creates it unconditionally, because the property has not been set then. macio_newworld_realize() realizes it only when the property is true. Works, although it can leave an unrealized device hanging around in the QOM composition tree. Affects machine mac99 with via=cuda (default). Delete the unused device by making macio_newworld_realize() unparent it. Visible in "info qom-tree": /machine (mac99-machine) [...] /unattached (container) /device[9] (macio-newworld) [...] /escc-legacy-port[8] (qemu:memory-region) /escc-legacy-port[9] (qemu:memory-region) /escc-legacy[0] (qemu:memory-region) - /gpio (macio-gpio) - /gpio[0] (qemu:memory-region) /ide[0] (macio-ide) /ide.0 (IDE) /pmac-ide[0] (qemu:memory-region) Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Cc: David Gibson <david@gibson.dropbear.id.au> Cc: qemu-ppc@nongnu.org Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Message-Id: <20200609122339.937862-11-armbru@redhat.com>
Diffstat (limited to 'hw/misc/macio')
-rw-r--r--hw/misc/macio/macio.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/hw/misc/macio/macio.c b/hw/misc/macio/macio.c
index 3779865..b3dddf8 100644
--- a/hw/misc/macio/macio.c
+++ b/hw/misc/macio/macio.c
@@ -368,6 +368,8 @@ static void macio_newworld_realize(PCIDevice *d, Error **errp)
memory_region_add_subregion(&s->bar, 0x16000,
sysbus_mmio_get_region(sysbus_dev, 0));
} else {
+ object_unparent(OBJECT(&ns->gpio));
+
/* CUDA */
object_initialize_child(OBJECT(s), "cuda", &s->cuda, sizeof(s->cuda),
TYPE_CUDA, &error_abort, NULL);