[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 3/6] sparc32-espdma: use object_initialize_child() for esp chi
From: |
Mark Cave-Ayland |
Subject: |
[PATCH v2 3/6] sparc32-espdma: use object_initialize_child() for esp child object |
Date: |
Sat, 26 Sep 2020 15:02:13 +0100 |
Store the child object directly within the sparc32-espdma object rather than
using link properties.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
hw/dma/sparc32_dma.c | 17 ++++++++---------
include/hw/sparc/sparc32_dma.h | 2 +-
2 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/hw/dma/sparc32_dma.c b/hw/dma/sparc32_dma.c
index 84196afb95..2cbe331959 100644
--- a/hw/dma/sparc32_dma.c
+++ b/hw/dma/sparc32_dma.c
@@ -290,27 +290,26 @@ static const TypeInfo sparc32_dma_device_info = {
static void sparc32_espdma_device_init(Object *obj)
{
DMADeviceState *s = SPARC32_DMA_DEVICE(obj);
+ ESPDMADeviceState *es = SPARC32_ESPDMA_DEVICE(obj);
memory_region_init_io(&s->iomem, OBJECT(s), &dma_mem_ops, s,
"espdma-mmio", DMA_SIZE);
+
+ object_initialize_child(obj, "esp", &es->esp, TYPE_ESP);
}
static void sparc32_espdma_device_realize(DeviceState *dev, Error **errp)
{
- DeviceState *d;
- SysBusESPState *sysbus;
- ESPState *esp;
-
- d = qdev_new(TYPE_ESP);
- object_property_add_child(OBJECT(dev), "esp", OBJECT(d));
- sysbus = ESP(d);
- esp = &sysbus->esp;
+ ESPDMADeviceState *es = SPARC32_ESPDMA_DEVICE(dev);
+ SysBusESPState *sysbus = ESP(&es->esp);
+ ESPState *esp = &sysbus->esp;
+
esp->dma_memory_read = espdma_memory_read;
esp->dma_memory_write = espdma_memory_write;
esp->dma_opaque = SPARC32_DMA_DEVICE(dev);
sysbus->it_shift = 2;
esp->dma_enabled = 1;
- sysbus_realize_and_unref(SYS_BUS_DEVICE(d), &error_fatal);
+ sysbus_realize(SYS_BUS_DEVICE(sysbus), &error_fatal);
}
static void sparc32_espdma_device_class_init(ObjectClass *klass, void *data)
diff --git a/include/hw/sparc/sparc32_dma.h b/include/hw/sparc/sparc32_dma.h
index 80d69cbba2..cde8ec02cb 100644
--- a/include/hw/sparc/sparc32_dma.h
+++ b/include/hw/sparc/sparc32_dma.h
@@ -28,7 +28,7 @@ OBJECT_DECLARE_SIMPLE_TYPE(ESPDMADeviceState,
SPARC32_ESPDMA_DEVICE)
struct ESPDMADeviceState {
DMADeviceState parent_obj;
- SysBusESPState *esp;
+ SysBusESPState esp;
};
#define TYPE_SPARC32_LEDMA_DEVICE "sparc32-ledma"
--
2.20.1
- [PATCH v2 0/6] QOM minor fixes, Mark Cave-Ayland, 2020/09/26
- [PATCH v2 2/6] sparc32-ledma: use object_initialize_child() for lance child object, Mark Cave-Ayland, 2020/09/26
- [PATCH v2 3/6] sparc32-espdma: use object_initialize_child() for esp child object,
Mark Cave-Ayland <=
- [PATCH v2 1/6] sparc32-dma: use object_initialize_child() for espdma and ledma child objects, Mark Cave-Ayland, 2020/09/26
- [PATCH v2 4/6] sparc32-ledma: don't reference nd_table directly within the device, Mark Cave-Ayland, 2020/09/26
- [PATCH v2 5/6] macio: don't reference serial_hd() directly within the device, Mark Cave-Ayland, 2020/09/26
- [PATCH v2 6/6] sabre: don't call sysbus_mmio_map() in sabre_realize(), Mark Cave-Ayland, 2020/09/26