[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 9/9] hw/timer: QOM'ify tusb6010
From: |
xiaoqiang zhao |
Subject: |
[Qemu-devel] [PATCH v4 9/9] hw/timer: QOM'ify tusb6010 |
Date: |
Mon, 22 Feb 2016 11:15:33 +0800 |
Move majority of old SysBus init's work the into instance_init.
Note:
musb_init must be called in SysBus's init, otherwise it will
break "make check" with error message as follows:
qom/object.c:1576:object_get_canonical_path_component: assertion failed:
(obj->parent != NULL)
Signed-off-by: xiaoqiang zhao <address@hidden>
---
hw/timer/tusb6010.c | 23 ++++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)
diff --git a/hw/timer/tusb6010.c b/hw/timer/tusb6010.c
index 9f6af90..2d6bdd3 100644
--- a/hw/timer/tusb6010.c
+++ b/hw/timer/tusb6010.c
@@ -776,21 +776,29 @@ static void tusb6010_reset(DeviceState *dev)
musb_reset(s->musb);
}
-static int tusb6010_init(SysBusDevice *sbd)
+static void tusb6010_init(Object *obj)
{
- DeviceState *dev = DEVICE(sbd);
- TUSBState *s = TUSB(dev);
+ DeviceState *dev = DEVICE(obj);
+ TUSBState *s = TUSB(obj);
+ SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
s->otg_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, tusb_otg_tick, s);
s->pwr_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, tusb_power_tick, s);
- memory_region_init_io(&s->iomem[1], OBJECT(s), &tusb_async_ops, s,
+ memory_region_init_io(&s->iomem[1], obj, &tusb_async_ops, s,
"tusb-async", UINT32_MAX);
sysbus_init_mmio(sbd, &s->iomem[0]);
sysbus_init_mmio(sbd, &s->iomem[1]);
sysbus_init_irq(sbd, &s->irq);
qdev_init_gpio_in(dev, tusb6010_irq, musb_irq_max + 1);
- s->musb = musb_init(dev, 1);
- return 0;
+}
+
+static int tusb6010_bus_init(SysBusDevice *sbd)
+{
+ TUSBState *s = TUSB(sbd);
+ DeviceState *dev = DEVICE(sbd);
+
+ s->musb = musb_init(dev, 1);
+ return 0;
}
static void tusb6010_class_init(ObjectClass *klass, void *data)
@@ -798,7 +806,7 @@ static void tusb6010_class_init(ObjectClass *klass, void
*data)
DeviceClass *dc = DEVICE_CLASS(klass);
SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
- k->init = tusb6010_init;
+ k->init = tusb6010_bus_init;
dc->reset = tusb6010_reset;
}
@@ -806,6 +814,7 @@ static const TypeInfo tusb6010_info = {
.name = TYPE_TUSB6010,
.parent = TYPE_SYS_BUS_DEVICE,
.instance_size = sizeof(TUSBState),
+ .instance_init = tusb6010_init,
.class_init = tusb6010_class_init,
};
--
2.1.4
- [Qemu-devel] [PATCH v4 0/9] QOM'ify hw/timer/*, xiaoqiang zhao, 2016/02/21
- [Qemu-devel] [PATCH v4 9/9] hw/timer: QOM'ify tusb6010,
xiaoqiang zhao <=
- [Qemu-devel] [PATCH v4 2/9] hw/timer: QOM'ify grlib_gptimer, xiaoqiang zhao, 2016/02/21
- [Qemu-devel] [PATCH v4 4/9] hw/timer: QOM'ify m48txx_sysbus (pass 1), xiaoqiang zhao, 2016/02/21
- [Qemu-devel] [PATCH v4 3/9] hw/timer: QOM'ify lm32_timer, xiaoqiang zhao, 2016/02/21
- [Qemu-devel] [PATCH v4 6/9] hw/timer: QOM'ify milkymist_sysctl, xiaoqiang zhao, 2016/02/21
- [Qemu-devel] [PATCH v4 7/9] hw/timer: QOM'ify puv3_ost, xiaoqiang zhao, 2016/02/21
- [Qemu-devel] [PATCH v4 1/9] hw/timer: QOM'ify etraxfs_timer, xiaoqiang zhao, 2016/02/21
- [Qemu-devel] [PATCH v4 8/9] hw/timer: QOM'ify slavio_timer, xiaoqiang zhao, 2016/02/21