Message ID | 20181123153040.18933-10-maozhongyi@cmss.chinamobile.com |
---|---|
State | New |
Headers | show |
Series | QOM'ify SysBusDeviceClass->init | expand |
On 23/11/18 16:30, Mao Zhongyi wrote: > Use DeviceClass rather than SysBusDeviceClass in > pl050_class_init(). > > Cc: peter.maydell@linaro.org > Cc: qemu-arm@nongnu.org > > Signed-off-by: Mao Zhongyi <maozhongyi@cmss.chinamobile.com> > Signed-off-by: Zhang Shengju <zhangshengju@cmss.chinamobile.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > hw/input/pl050.c | 11 +++++------ > 1 file changed, 5 insertions(+), 6 deletions(-) > > diff --git a/hw/input/pl050.c b/hw/input/pl050.c > index be9cd57b17..15bffbfcad 100644 > --- a/hw/input/pl050.c > +++ b/hw/input/pl050.c > @@ -139,19 +139,19 @@ static const MemoryRegionOps pl050_ops = { > .endianness = DEVICE_NATIVE_ENDIAN, > }; > > -static int pl050_initfn(SysBusDevice *dev) > +static void pl050_realize(DeviceState *dev, Error **errp) > { > PL050State *s = PL050(dev); > + SysBusDevice *sbd = SYS_BUS_DEVICE(dev); > > memory_region_init_io(&s->iomem, OBJECT(s), &pl050_ops, s, "pl050", 0x1000); > - sysbus_init_mmio(dev, &s->iomem); > - sysbus_init_irq(dev, &s->irq); > + sysbus_init_mmio(sbd, &s->iomem); > + sysbus_init_irq(sbd, &s->irq); > if (s->is_mouse) { > s->dev = ps2_mouse_init(pl050_update, s); > } else { > s->dev = ps2_kbd_init(pl050_update, s); > } > - return 0; > } > > static void pl050_keyboard_init(Object *obj) > @@ -183,9 +183,8 @@ static const TypeInfo pl050_mouse_info = { > static void pl050_class_init(ObjectClass *oc, void *data) > { > DeviceClass *dc = DEVICE_CLASS(oc); > - SysBusDeviceClass *sdc = SYS_BUS_DEVICE_CLASS(oc); > > - sdc->init = pl050_initfn; > + dc->realize = pl050_realize; > dc->vmsd = &vmstate_pl050; > } > >
diff --git a/hw/input/pl050.c b/hw/input/pl050.c index be9cd57b17..15bffbfcad 100644 --- a/hw/input/pl050.c +++ b/hw/input/pl050.c @@ -139,19 +139,19 @@ static const MemoryRegionOps pl050_ops = { .endianness = DEVICE_NATIVE_ENDIAN, }; -static int pl050_initfn(SysBusDevice *dev) +static void pl050_realize(DeviceState *dev, Error **errp) { PL050State *s = PL050(dev); + SysBusDevice *sbd = SYS_BUS_DEVICE(dev); memory_region_init_io(&s->iomem, OBJECT(s), &pl050_ops, s, "pl050", 0x1000); - sysbus_init_mmio(dev, &s->iomem); - sysbus_init_irq(dev, &s->irq); + sysbus_init_mmio(sbd, &s->iomem); + sysbus_init_irq(sbd, &s->irq); if (s->is_mouse) { s->dev = ps2_mouse_init(pl050_update, s); } else { s->dev = ps2_kbd_init(pl050_update, s); } - return 0; } static void pl050_keyboard_init(Object *obj) @@ -183,9 +183,8 @@ static const TypeInfo pl050_mouse_info = { static void pl050_class_init(ObjectClass *oc, void *data) { DeviceClass *dc = DEVICE_CLASS(oc); - SysBusDeviceClass *sdc = SYS_BUS_DEVICE_CLASS(oc); - sdc->init = pl050_initfn; + dc->realize = pl050_realize; dc->vmsd = &vmstate_pl050; }