aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorCédric Le Goater <clg@kaod.org>2017-02-27 15:29:27 +0100
committerDavid Gibson <david@gibson.dropbear.id.au>2017-03-01 11:23:40 +1100
commit20147f2fceaa8a89176e49e1941f741d12a3364c (patch)
treeea3e4d5f3add3c2ae4d9c2d02deea2481aa28feb /hw
parentb0ec31290cbf0df4c9945370aeb921248995543d (diff)
downloadqemu-20147f2fceaa8a89176e49e1941f741d12a3364c.zip
qemu-20147f2fceaa8a89176e49e1941f741d12a3364c.tar.gz
qemu-20147f2fceaa8a89176e49e1941f741d12a3364c.tar.bz2
ppc/xics: register the reset handler of ICP objects
The reset of the ICP objects is currently handled by XICS but this can be done for each individual ICP. Signed-off-by: Cédric Le Goater <clg@kaod.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'hw')
-rw-r--r--hw/intc/xics.c18
-rw-r--r--hw/ppc/spapr.c1
2 files changed, 1 insertions, 18 deletions
diff --git a/hw/intc/xics.c b/hw/intc/xics.c
index ddb0a6f..51e6c0c 100644
--- a/hw/intc/xics.c
+++ b/hw/intc/xics.c
@@ -137,29 +137,11 @@ static void ics_simple_pic_print_info(InterruptStatsProvider *obj,
/*
* XICS Common class - parent for emulated XICS and KVM-XICS
*/
-static void xics_common_reset(DeviceState *d)
-{
- XICSState *xics = XICS_COMMON(d);
- int i;
-
- for (i = 0; i < xics->nr_servers; i++) {
- device_reset(DEVICE(&xics->ss[i]));
- }
-}
-
-static void xics_common_class_init(ObjectClass *oc, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(oc);
-
- dc->reset = xics_common_reset;
-}
-
static const TypeInfo xics_common_info = {
.name = TYPE_XICS_COMMON,
.parent = TYPE_DEVICE,
.instance_size = sizeof(XICSState),
.class_size = sizeof(XICSStateClass),
- .class_init = xics_common_class_init,
};
/*
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 7ad932f..8b2d21c 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -131,6 +131,7 @@ static XICSState *try_create_xics(sPAPRMachineState *spapr,
ICPState *icp = &xics->ss[i];
object_initialize(icp, sizeof(*icp), type_icp);
+ qdev_set_parent_bus(DEVICE(icp), sysbus_get_default());
object_property_add_child(OBJECT(xics), "icp[*]", OBJECT(icp), NULL);
object_property_add_const_link(OBJECT(icp), "xics", OBJECT(xi), NULL);
object_property_set_bool(OBJECT(icp), true, "realized", &err);