diff options
author | Cédric Le Goater <clg@kaod.org> | 2017-02-27 15:29:27 +0100 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2017-03-01 11:23:40 +1100 |
commit | 20147f2fceaa8a89176e49e1941f741d12a3364c (patch) | |
tree | ea3e4d5f3add3c2ae4d9c2d02deea2481aa28feb /hw | |
parent | b0ec31290cbf0df4c9945370aeb921248995543d (diff) |
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.c | 18 | ||||
-rw-r--r-- | hw/ppc/spapr.c | 1 |
2 files changed, 1 insertions, 18 deletions
diff --git a/hw/intc/xics.c b/hw/intc/xics.c index ddb0a6f48b..51e6c0c85f 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 7ad932fb28..8b2d21c15b 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); |