From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Also change the instantiation of the dp8393x device to use object_initialize_child().
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
CC: Jason Wang <jasowang@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20230621085353.113233-16-mark.cave-ayland@ilande.co.uk>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
include/hw/m68k/q800.h | 2 ++
hw/m68k/q800.c | 6 ++++--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/include/hw/m68k/q800.h b/include/hw/m68k/q800.h
index 06c771635b3f..d11bc020ed98 100644
--- a/include/hw/m68k/q800.h
+++ b/include/hw/m68k/q800.h
@@ -29,6 +29,7 @@
#include "exec/memory.h"
#include "hw/m68k/q800-glue.h"
#include "hw/misc/mac_via.h"
+#include "hw/net/dp8393x.h"
/*
* The main Q800 machine
@@ -42,6 +43,7 @@ struct Q800MachineState {
GLUEState glue;
MOS6522Q800VIA1State via1;
MOS6522Q800VIA2State via2;
+ dp8393xState dp8393x;
MemoryRegion macio;
MemoryRegion macio_alias;
};
diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c
index 988b4981b830..13806613fa36 100644
--- a/hw/m68k/q800.c
+++ b/hw/m68k/q800.c
@@ -315,14 +315,16 @@ static void q800_machine_init(MachineState *machine)
nd_table[0].macaddr.a[1] = 0x00;
nd_table[0].macaddr.a[2] = 0x07;
- dev = qdev_new("dp8393x");
+ object_initialize_child(OBJECT(machine), "dp8393x", &m->dp8393x,
+ TYPE_DP8393X);
+ dev = DEVICE(&m->dp8393x);
qdev_set_nic_properties(dev, &nd_table[0]);
qdev_prop_set_uint8(dev, "it_shift", 2);
qdev_prop_set_bit(dev, "big_endian", true);
object_property_set_link(OBJECT(dev), "dma_mr",
OBJECT(get_system_memory()), &error_abort);
sysbus = SYS_BUS_DEVICE(dev);
- sysbus_realize_and_unref(sysbus, &error_fatal);
+ sysbus_realize(sysbus, &error_fatal);
memory_region_add_subregion(&m->macio, SONIC_BASE - IO_BASE,
sysbus_mmio_get_region(sysbus, 0));
sysbus_connect_irq(sysbus, 0,
--
2.40.1