sparc32-espdma: use object_initialize_child() for esp child object
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> Message-Id: <20200926140216.7368-4-mark.cave-ayland@ilande.co.uk> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
This commit is contained in:
parent
bce83ed998
commit
d19265eaf5
@ -290,27 +290,26 @@ static const TypeInfo sparc32_dma_device_info = {
|
|||||||
static void sparc32_espdma_device_init(Object *obj)
|
static void sparc32_espdma_device_init(Object *obj)
|
||||||
{
|
{
|
||||||
DMADeviceState *s = SPARC32_DMA_DEVICE(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,
|
memory_region_init_io(&s->iomem, OBJECT(s), &dma_mem_ops, s,
|
||||||
"espdma-mmio", DMA_SIZE);
|
"espdma-mmio", DMA_SIZE);
|
||||||
|
|
||||||
|
object_initialize_child(obj, "esp", &es->esp, TYPE_ESP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sparc32_espdma_device_realize(DeviceState *dev, Error **errp)
|
static void sparc32_espdma_device_realize(DeviceState *dev, Error **errp)
|
||||||
{
|
{
|
||||||
DeviceState *d;
|
ESPDMADeviceState *es = SPARC32_ESPDMA_DEVICE(dev);
|
||||||
SysBusESPState *sysbus;
|
SysBusESPState *sysbus = ESP(&es->esp);
|
||||||
ESPState *esp;
|
ESPState *esp = &sysbus->esp;
|
||||||
|
|
||||||
d = qdev_new(TYPE_ESP);
|
|
||||||
object_property_add_child(OBJECT(dev), "esp", OBJECT(d));
|
|
||||||
sysbus = ESP(d);
|
|
||||||
esp = &sysbus->esp;
|
|
||||||
esp->dma_memory_read = espdma_memory_read;
|
esp->dma_memory_read = espdma_memory_read;
|
||||||
esp->dma_memory_write = espdma_memory_write;
|
esp->dma_memory_write = espdma_memory_write;
|
||||||
esp->dma_opaque = SPARC32_DMA_DEVICE(dev);
|
esp->dma_opaque = SPARC32_DMA_DEVICE(dev);
|
||||||
sysbus->it_shift = 2;
|
sysbus->it_shift = 2;
|
||||||
esp->dma_enabled = 1;
|
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)
|
static void sparc32_espdma_device_class_init(ObjectClass *klass, void *data)
|
||||||
|
@ -28,7 +28,7 @@ OBJECT_DECLARE_SIMPLE_TYPE(ESPDMADeviceState, SPARC32_ESPDMA_DEVICE)
|
|||||||
struct ESPDMADeviceState {
|
struct ESPDMADeviceState {
|
||||||
DMADeviceState parent_obj;
|
DMADeviceState parent_obj;
|
||||||
|
|
||||||
SysBusESPState *esp;
|
SysBusESPState esp;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define TYPE_SPARC32_LEDMA_DEVICE "sparc32-ledma"
|
#define TYPE_SPARC32_LEDMA_DEVICE "sparc32-ledma"
|
||||||
|
Loading…
Reference in New Issue
Block a user