From 63f01a74aeeb9c4fb39e2b4100beb084f5c10c95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Thu, 8 Mar 2018 23:39:30 +0100 Subject: hw/isa/pc87312: Inherit from the abstract TYPE_ISA_SUPERIO MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20180308223946.26784-10-f4bug@amsat.org> Signed-off-by: Paolo Bonzini --- hw/isa/pc87312.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'hw/isa') diff --git a/hw/isa/pc87312.c b/hw/isa/pc87312.c index fda91fe..6b8100f 100644 --- a/hw/isa/pc87312.c +++ b/hw/isa/pc87312.c @@ -270,6 +270,7 @@ static void pc87312_realize(DeviceState *dev, Error **errp) ISABus *bus; Chardev *chr; DriveInfo *drive; + Error *local_err = NULL; char name[5]; int i; @@ -279,6 +280,12 @@ static void pc87312_realize(DeviceState *dev, Error **errp) isa_register_ioport(isa, &s->io, s->iobase); pc87312_hard_reset(s); + ISA_SUPERIO_GET_CLASS(dev)->parent_realize(dev, &local_err); + if (local_err) { + error_propagate(errp, local_err); + return; + } + if (is_parallel_enabled(s)) { /* FIXME use a qdev chardev prop instead of parallel_hds[] */ chr = parallel_hds[0]; @@ -381,7 +388,9 @@ static Property pc87312_properties[] = { static void pc87312_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); + ISASuperIOClass *sc = ISA_SUPERIO_CLASS(klass); + sc->parent_realize = dc->realize; dc->realize = pc87312_realize; dc->reset = pc87312_reset; dc->vmsd = &vmstate_pc87312; @@ -392,7 +401,7 @@ static void pc87312_class_init(ObjectClass *klass, void *data) static const TypeInfo pc87312_type_info = { .name = TYPE_PC87312_SUPERIO, - .parent = TYPE_ISA_DEVICE, + .parent = TYPE_ISA_SUPERIO, .instance_size = sizeof(PC87312State), .instance_init = pc87312_initfn, .class_init = pc87312_class_init, -- cgit v1.1