aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxiaoqiang zhao <zxq_yx_007@163.com>2017-05-25 21:34:46 +0800
committerMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>2017-06-02 05:54:43 +0100
commit1c958ad300cf6d6800ca7b25dc23847926f0c191 (patch)
tree5bebca4df0f401320fc923d6c3975bddc3383498
parent8c612079e08f47965c5e567a114c24b7970fd639 (diff)
hw/dma: QOM'ify sun4m_iommu.c
Drop the old SysBus init function and use instance_init Signed-off-by: xiaoqiang zhao <zxq_yx_007@163.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
-rw-r--r--hw/dma/sun4m_iommu.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/hw/dma/sun4m_iommu.c b/hw/dma/sun4m_iommu.c
index b3cbc54c23..335ef63cbc 100644
--- a/hw/dma/sun4m_iommu.c
+++ b/hw/dma/sun4m_iommu.c
@@ -349,17 +349,16 @@ static void iommu_reset(DeviceState *d)
s->regs[IOMMU_MASK_ID] = IOMMU_TS_MASK;
}
-static int iommu_init1(SysBusDevice *dev)
+static void iommu_init(Object *obj)
{
- IOMMUState *s = SUN4M_IOMMU(dev);
+ IOMMUState *s = SUN4M_IOMMU(obj);
+ SysBusDevice *dev = SYS_BUS_DEVICE(obj);
sysbus_init_irq(dev, &s->irq);
- memory_region_init_io(&s->iomem, OBJECT(s), &iommu_mem_ops, s, "iommu",
+ memory_region_init_io(&s->iomem, obj, &iommu_mem_ops, s, "iommu",
IOMMU_NREGS * sizeof(uint32_t));
sysbus_init_mmio(dev, &s->iomem);
-
- return 0;
}
static Property iommu_properties[] = {
@@ -370,9 +369,7 @@ static Property iommu_properties[] = {
static void iommu_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
- SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
- k->init = iommu_init1;
dc->reset = iommu_reset;
dc->vmsd = &vmstate_iommu;
dc->props = iommu_properties;
@@ -382,6 +379,7 @@ static const TypeInfo iommu_info = {
.name = TYPE_SUN4M_IOMMU,
.parent = TYPE_SYS_BUS_DEVICE,
.instance_size = sizeof(IOMMUState),
+ .instance_init = iommu_init,
.class_init = iommu_class_init,
};