diff mbox

[v2,2/2] milkymist-uart: use Device::realize instead of SysBusDevice::init

Message ID 1377969760-17489-3-git-send-email-antonynpavlov@gmail.com
State New
Headers show

Commit Message

Antony Pavlov Aug. 31, 2013, 5:22 p.m. UTC
Use of SysBusDevice::init is deprecated.
Use Device::realize instead of SysBusDevice::init.
Check dma/pl330.c for an example of the pattern.

Also introduce TypeInfo::instance_init milkymist_uart_init()
as char/pl011.c does.

Reported-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
CC: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
CC: Michael Walle <michael@walle.cc>
CC: Andreas Färber <afaerber@suse.de>
---
 hw/char/milkymist-uart.c | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

Comments

Andreas Färber Aug. 31, 2013, 7:09 p.m. UTC | #1
Am 31.08.2013 19:22, schrieb Antony Pavlov:
> Use of SysBusDevice::init is deprecated.
> Use Device::realize instead of SysBusDevice::init.
> Check dma/pl330.c for an example of the pattern.
> 
> Also introduce TypeInfo::instance_init milkymist_uart_init()
> as char/pl011.c does.
> 
> Reported-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
> Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
> CC: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
> CC: Michael Walle <michael@walle.cc>
> CC: Andreas Färber <afaerber@suse.de>
> ---
>  hw/char/milkymist-uart.c | 24 ++++++++++++++----------
>  1 file changed, 14 insertions(+), 10 deletions(-)

Thanks, applied to qom-next (with shortened commit message):
https://github.com/afaerber/qemu-cpu/commits/qom-next

Andreas
Antony Pavlov Sept. 1, 2013, 6:28 p.m. UTC | #2
On Sat, 31 Aug 2013 21:09:20 +0200
Andreas Färber <afaerber@suse.de> wrote:

> Am 31.08.2013 19:22, schrieb Antony Pavlov:
> > Use of SysBusDevice::init is deprecated.
> > Use Device::realize instead of SysBusDevice::init.
> > Check dma/pl330.c for an example of the pattern.
> > 
> > Also introduce TypeInfo::instance_init milkymist_uart_init()
> > as char/pl011.c does.
> > 
> > Reported-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
> > Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
> > CC: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
> > CC: Michael Walle <michael@walle.cc>
> > CC: Andreas Färber <afaerber@suse.de>
> > ---
> >  hw/char/milkymist-uart.c | 24 ++++++++++++++----------
> >  1 file changed, 14 insertions(+), 10 deletions(-)
> 
> Thanks, applied to qom-next (with shortened commit message):
> https://github.com/afaerber/qemu-cpu/commits/qom-next
> 

That's about the patch number 1 ( milkymist-uart: use qemu_chr_fe_write_all() instead of qemu_chr_fe_write()) ?

-- 
Best regards,
  Antony Pavlov
Peter Crosthwaite Sept. 1, 2013, 11:03 p.m. UTC | #3
On Sun, Sep 1, 2013 at 3:22 AM, Antony Pavlov <antonynpavlov@gmail.com> wrote:
> Use of SysBusDevice::init is deprecated.
> Use Device::realize instead of SysBusDevice::init.
> Check dma/pl330.c for an example of the pattern.
>

I think Andreas may have fixed in enqueue, but informal suggestion of
change patterns arent really suitable for commit messages. So drop
sentances like this one.

Regards,
Peter
Andreas Färber Sept. 2, 2013, 7:53 a.m. UTC | #4
Am 01.09.2013 20:28, schrieb Antony Pavlov:
> On Sat, 31 Aug 2013 21:09:20 +0200
> Andreas Färber <afaerber@suse.de> wrote:
> 
>> Am 31.08.2013 19:22, schrieb Antony Pavlov:
>>> Use of SysBusDevice::init is deprecated.
>>> Use Device::realize instead of SysBusDevice::init.
>>> Check dma/pl330.c for an example of the pattern.
>>>
>>> Also introduce TypeInfo::instance_init milkymist_uart_init()
>>> as char/pl011.c does.
>>>
>>> Reported-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
>>> Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
>>> CC: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
>>> CC: Michael Walle <michael@walle.cc>
>>> CC: Andreas Färber <afaerber@suse.de>
>>> ---
>>>  hw/char/milkymist-uart.c | 24 ++++++++++++++----------
>>>  1 file changed, 14 insertions(+), 10 deletions(-)
>>
>> Thanks, applied to qom-next (with shortened commit message):
>> https://github.com/afaerber/qemu-cpu/commits/qom-next
>>
> 
> That's about the patch number 1 ( milkymist-uart: use qemu_chr_fe_write_all() instead of qemu_chr_fe_write()) ?

No, it's about patch 2, which I replied to. Patch 1 is not a QOM
conversion but an unrelated bug fix - it can be handled either by the
lm32 maintainer or by whomever takes care of the char layer these days
(Anthony/Gerd).

Regards,
Andreas
diff mbox

Patch

diff --git a/hw/char/milkymist-uart.c b/hw/char/milkymist-uart.c
index 6e4bc20..da51f82 100644
--- a/hw/char/milkymist-uart.c
+++ b/hw/char/milkymist-uart.c
@@ -195,22 +195,26 @@  static void milkymist_uart_reset(DeviceState *d)
     s->regs[R_STAT] = STAT_THRE;
 }
 
-static int milkymist_uart_init(SysBusDevice *dev)
+static void milkymist_uart_realize(DeviceState *dev, Error **errp)
 {
     MilkymistUartState *s = MILKYMIST_UART(dev);
 
-    sysbus_init_irq(dev, &s->irq);
-
-    memory_region_init_io(&s->regs_region, OBJECT(s), &uart_mmio_ops, s,
-                          "milkymist-uart", R_MAX * 4);
-    sysbus_init_mmio(dev, &s->regs_region);
-
     s->chr = qemu_char_get_next_serial();
     if (s->chr) {
         qemu_chr_add_handlers(s->chr, uart_can_rx, uart_rx, uart_event, s);
     }
+}
 
-    return 0;
+static void milkymist_uart_init(Object *obj)
+{
+    SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
+    MilkymistUartState *s = MILKYMIST_UART(obj);
+
+    sysbus_init_irq(sbd, &s->irq);
+
+    memory_region_init_io(&s->regs_region, OBJECT(s), &uart_mmio_ops, s,
+                          "milkymist-uart", R_MAX * 4);
+    sysbus_init_mmio(sbd, &s->regs_region);
 }
 
 static const VMStateDescription vmstate_milkymist_uart = {
@@ -227,9 +231,8 @@  static const VMStateDescription vmstate_milkymist_uart = {
 static void milkymist_uart_class_init(ObjectClass *klass, void *data)
 {
     DeviceClass *dc = DEVICE_CLASS(klass);
-    SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
 
-    k->init = milkymist_uart_init;
+    dc->realize = milkymist_uart_realize;
     dc->reset = milkymist_uart_reset;
     dc->vmsd = &vmstate_milkymist_uart;
 }
@@ -238,6 +241,7 @@  static const TypeInfo milkymist_uart_info = {
     .name          = TYPE_MILKYMIST_UART,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(MilkymistUartState),
+    .instance_init = milkymist_uart_init,
     .class_init    = milkymist_uart_class_init,
 };