qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 0/4] QOM'ify work for ppc
@ 2017-01-06  0:26 xiaoqiang zhao
  2017-01-06  0:26 ` [Qemu-devel] [PATCH v2 1/4] hw/gpio: QOM'ify mpc8xxx.c xiaoqiang zhao
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: xiaoqiang zhao @ 2017-01-06  0:26 UTC (permalink / raw)
  To: qemu-devel; +Cc: david, agraf, peter.maydell, qemu-ppc

This is some QOM'ify work relate with ppc.
See each commit message for details.

changes in v2:
  remove empty function 'spapr_vio_bridge_init'

xiaoqiang zhao (4):
  hw/gpio: QOM'ify mpc8xxx.c
  hw/ppc: QOM'ify e500.c
  hw/ppc: QOM'ify ppce500_spin.c
  hw/ppc: QOM'ify spapr_vio.c

 hw/gpio/mpc8xxx.c     | 20 +++++++++++---------
 hw/ppc/e500.c         | 17 ++++-------------
 hw/ppc/ppce500_spin.c | 18 ++++++++----------
 hw/ppc/spapr_vio.c    | 10 ----------
 4 files changed, 23 insertions(+), 42 deletions(-)

-- 
2.11.0

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Qemu-devel] [PATCH v2 1/4] hw/gpio: QOM'ify mpc8xxx.c
  2017-01-06  0:26 [Qemu-devel] [PATCH v2 0/4] QOM'ify work for ppc xiaoqiang zhao
@ 2017-01-06  0:26 ` xiaoqiang zhao
  2017-01-06  0:26 ` [Qemu-devel] [PATCH v2 2/4] hw/ppc: QOM'ify e500.c xiaoqiang zhao
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: xiaoqiang zhao @ 2017-01-06  0:26 UTC (permalink / raw)
  To: qemu-devel; +Cc: david, agraf, peter.maydell, qemu-ppc

* Drop the old SysBus init function and use instance_init
* Change mpc8xxx_gpio_reset to a DeviceClass::reset function

Signed-off-by: xiaoqiang zhao <zxq_yx_007@163.com>
---
 hw/gpio/mpc8xxx.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/hw/gpio/mpc8xxx.c b/hw/gpio/mpc8xxx.c
index d149719469..e12edb4933 100644
--- a/hw/gpio/mpc8xxx.c
+++ b/hw/gpio/mpc8xxx.c
@@ -143,8 +143,10 @@ static void mpc8xxx_gpio_write(void *opaque, hwaddr offset,
     mpc8xxx_gpio_update(s);
 }
 
-static void mpc8xxx_gpio_reset(MPC8XXXGPIOState *s)
+static void mpc8xxx_gpio_reset(DeviceState *dev)
 {
+    MPC8XXXGPIOState *s = MPC8XXX_GPIO(dev);
+
     s->dir = 0;
     s->odr = 0;
     s->dat = 0;
@@ -180,33 +182,33 @@ static const MemoryRegionOps mpc8xxx_gpio_ops = {
     .endianness = DEVICE_BIG_ENDIAN,
 };
 
-static int mpc8xxx_gpio_initfn(SysBusDevice *sbd)
+static void mpc8xxx_gpio_initfn(Object *obj)
 {
-    DeviceState *dev = DEVICE(sbd);
-    MPC8XXXGPIOState *s = MPC8XXX_GPIO(dev);
+    DeviceState *dev = DEVICE(obj);
+    MPC8XXXGPIOState *s = MPC8XXX_GPIO(obj);
+    SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
 
-    memory_region_init_io(&s->iomem, OBJECT(s), &mpc8xxx_gpio_ops, s, "mpc8xxx_gpio", 0x1000);
+    memory_region_init_io(&s->iomem, obj, &mpc8xxx_gpio_ops,
+                          s, "mpc8xxx_gpio", 0x1000);
     sysbus_init_mmio(sbd, &s->iomem);
     sysbus_init_irq(sbd, &s->irq);
     qdev_init_gpio_in(dev, mpc8xxx_gpio_set_irq, 32);
     qdev_init_gpio_out(dev, s->out, 32);
-    mpc8xxx_gpio_reset(s);
-    return 0;
 }
 
 static void mpc8xxx_gpio_class_init(ObjectClass *klass, void *data)
 {
     DeviceClass *dc = DEVICE_CLASS(klass);
-    SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
 
-    k->init = mpc8xxx_gpio_initfn;
     dc->vmsd = &vmstate_mpc8xxx_gpio;
+    dc->reset = mpc8xxx_gpio_reset;
 }
 
 static const TypeInfo mpc8xxx_gpio_info = {
     .name          = TYPE_MPC8XXX_GPIO,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(MPC8XXXGPIOState),
+    .instance_init = mpc8xxx_gpio_initfn,
     .class_init    = mpc8xxx_gpio_class_init,
 };
 
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Qemu-devel] [PATCH v2 2/4] hw/ppc: QOM'ify e500.c
  2017-01-06  0:26 [Qemu-devel] [PATCH v2 0/4] QOM'ify work for ppc xiaoqiang zhao
  2017-01-06  0:26 ` [Qemu-devel] [PATCH v2 1/4] hw/gpio: QOM'ify mpc8xxx.c xiaoqiang zhao
@ 2017-01-06  0:26 ` xiaoqiang zhao
  2017-01-06  0:26 ` [Qemu-devel] [PATCH v2 3/4] hw/ppc: QOM'ify ppce500_spin.c xiaoqiang zhao
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: xiaoqiang zhao @ 2017-01-06  0:26 UTC (permalink / raw)
  To: qemu-devel; +Cc: david, agraf, peter.maydell, qemu-ppc

Drop the old SysBus init function and use instance_init

Signed-off-by: xiaoqiang zhao <zxq_yx_007@163.com>
---
 hw/ppc/e500.c | 17 ++++-------------
 1 file changed, 4 insertions(+), 13 deletions(-)

diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c
index cf8b122afe..792bd79d39 100644
--- a/hw/ppc/e500.c
+++ b/hw/ppc/e500.c
@@ -1049,27 +1049,18 @@ void ppce500_init(MachineState *machine, PPCE500Params *params)
     boot_info->dt_size = dt_size;
 }
 
-static int e500_ccsr_initfn(SysBusDevice *dev)
+static void e500_ccsr_initfn(Object *obj)
 {
-    PPCE500CCSRState *ccsr;
-
-    ccsr = CCSR(dev);
-    memory_region_init(&ccsr->ccsr_space, OBJECT(ccsr), "e500-ccsr",
+    PPCE500CCSRState *ccsr = CCSR(obj);
+    memory_region_init(&ccsr->ccsr_space, obj, "e500-ccsr",
                        MPC8544_CCSRBAR_SIZE);
-    return 0;
-}
-
-static void e500_ccsr_class_init(ObjectClass *klass, void *data)
-{
-    SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
-    k->init = e500_ccsr_initfn;
 }
 
 static const TypeInfo e500_ccsr_info = {
     .name          = TYPE_CCSR,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(PPCE500CCSRState),
-    .class_init    = e500_ccsr_class_init,
+    .instance_init = e500_ccsr_initfn,
 };
 
 static void e500_register_types(void)
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Qemu-devel] [PATCH v2 3/4] hw/ppc: QOM'ify ppce500_spin.c
  2017-01-06  0:26 [Qemu-devel] [PATCH v2 0/4] QOM'ify work for ppc xiaoqiang zhao
  2017-01-06  0:26 ` [Qemu-devel] [PATCH v2 1/4] hw/gpio: QOM'ify mpc8xxx.c xiaoqiang zhao
  2017-01-06  0:26 ` [Qemu-devel] [PATCH v2 2/4] hw/ppc: QOM'ify e500.c xiaoqiang zhao
@ 2017-01-06  0:26 ` xiaoqiang zhao
  2017-01-06  0:26 ` [Qemu-devel] [PATCH v2 4/4] hw/ppc: QOM'ify spapr_vio.c xiaoqiang zhao
  2017-01-06  4:49 ` [Qemu-devel] [PATCH v2 0/4] QOM'ify work for ppc David Gibson
  4 siblings, 0 replies; 6+ messages in thread
From: xiaoqiang zhao @ 2017-01-06  0:26 UTC (permalink / raw)
  To: qemu-devel; +Cc: david, agraf, peter.maydell, qemu-ppc

Drop the old SysBus init function and use instance_init

Signed-off-by: xiaoqiang zhao <zxq_yx_007@163.com>
---
 hw/ppc/ppce500_spin.c | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/hw/ppc/ppce500_spin.c b/hw/ppc/ppce500_spin.c
index cf958a9e00..958536f6c6 100644
--- a/hw/ppc/ppce500_spin.c
+++ b/hw/ppc/ppce500_spin.c
@@ -54,9 +54,9 @@ typedef struct SpinState {
     SpinInfo spin[MAX_CPUS];
 } SpinState;
 
-static void spin_reset(void *opaque)
+static void spin_reset(DeviceState *dev)
 {
-    SpinState *s = opaque;
+    SpinState *s = E500_SPIN(dev);
     int i;
 
     for (i = 0; i < MAX_CPUS; i++) {
@@ -174,30 +174,28 @@ static const MemoryRegionOps spin_rw_ops = {
     .endianness = DEVICE_BIG_ENDIAN,
 };
 
-static int ppce500_spin_initfn(SysBusDevice *dev)
+static void ppce500_spin_initfn(Object *obj)
 {
+    SysBusDevice *dev = SYS_BUS_DEVICE(obj);
     SpinState *s = E500_SPIN(dev);
 
-    memory_region_init_io(&s->iomem, OBJECT(s), &spin_rw_ops, s,
+    memory_region_init_io(&s->iomem, obj, &spin_rw_ops, s,
                           "e500 spin pv device", sizeof(SpinInfo) * MAX_CPUS);
     sysbus_init_mmio(dev, &s->iomem);
-
-    qemu_register_reset(spin_reset, s);
-
-    return 0;
 }
 
 static void ppce500_spin_class_init(ObjectClass *klass, void *data)
 {
-    SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
+    DeviceClass *dc = DEVICE_CLASS(klass);
 
-    k->init = ppce500_spin_initfn;
+    dc->reset = spin_reset;
 }
 
 static const TypeInfo ppce500_spin_info = {
     .name          = TYPE_E500_SPIN,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(SpinState),
+    .instance_init = ppce500_spin_initfn,
     .class_init    = ppce500_spin_class_init,
 };
 
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Qemu-devel] [PATCH v2 4/4] hw/ppc: QOM'ify spapr_vio.c
  2017-01-06  0:26 [Qemu-devel] [PATCH v2 0/4] QOM'ify work for ppc xiaoqiang zhao
                   ` (2 preceding siblings ...)
  2017-01-06  0:26 ` [Qemu-devel] [PATCH v2 3/4] hw/ppc: QOM'ify ppce500_spin.c xiaoqiang zhao
@ 2017-01-06  0:26 ` xiaoqiang zhao
  2017-01-06  4:49 ` [Qemu-devel] [PATCH v2 0/4] QOM'ify work for ppc David Gibson
  4 siblings, 0 replies; 6+ messages in thread
From: xiaoqiang zhao @ 2017-01-06  0:26 UTC (permalink / raw)
  To: qemu-devel; +Cc: david, agraf, peter.maydell, qemu-ppc

Drop the old and empty SysBus init

Signed-off-by: xiaoqiang zhao <zxq_yx_007@163.com>
---
 hw/ppc/spapr_vio.c | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/hw/ppc/spapr_vio.c b/hw/ppc/spapr_vio.c
index cc1e09c568..8bfc5f971f 100644
--- a/hw/ppc/spapr_vio.c
+++ b/hw/ppc/spapr_vio.c
@@ -538,21 +538,11 @@ VIOsPAPRBus *spapr_vio_bus_init(void)
     return bus;
 }
 
-/* Represents sPAPR hcall VIO devices */
-
-static int spapr_vio_bridge_init(SysBusDevice *dev)
-{
-    /* nothing */
-    return 0;
-}
-
 static void spapr_vio_bridge_class_init(ObjectClass *klass, void *data)
 {
-    SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
     DeviceClass *dc = DEVICE_CLASS(klass);
 
     dc->fw_name = "vdevice";
-    k->init = spapr_vio_bridge_init;
 }
 
 static const TypeInfo spapr_vio_bridge_info = {
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PATCH v2 0/4] QOM'ify work for ppc
  2017-01-06  0:26 [Qemu-devel] [PATCH v2 0/4] QOM'ify work for ppc xiaoqiang zhao
                   ` (3 preceding siblings ...)
  2017-01-06  0:26 ` [Qemu-devel] [PATCH v2 4/4] hw/ppc: QOM'ify spapr_vio.c xiaoqiang zhao
@ 2017-01-06  4:49 ` David Gibson
  4 siblings, 0 replies; 6+ messages in thread
From: David Gibson @ 2017-01-06  4:49 UTC (permalink / raw)
  To: xiaoqiang zhao; +Cc: qemu-devel, agraf, peter.maydell, qemu-ppc

[-- Attachment #1: Type: text/plain, Size: 455 bytes --]

On Fri, Jan 06, 2017 at 08:26:24AM +0800, xiaoqiang zhao wrote:
> This is some QOM'ify work relate with ppc.
> See each commit message for details.
> 
> changes in v2:
>   remove empty function 'spapr_vio_bridge_init'

Applied to ppc-for-2.9, thanks.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-01-06  5:05 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-06  0:26 [Qemu-devel] [PATCH v2 0/4] QOM'ify work for ppc xiaoqiang zhao
2017-01-06  0:26 ` [Qemu-devel] [PATCH v2 1/4] hw/gpio: QOM'ify mpc8xxx.c xiaoqiang zhao
2017-01-06  0:26 ` [Qemu-devel] [PATCH v2 2/4] hw/ppc: QOM'ify e500.c xiaoqiang zhao
2017-01-06  0:26 ` [Qemu-devel] [PATCH v2 3/4] hw/ppc: QOM'ify ppce500_spin.c xiaoqiang zhao
2017-01-06  0:26 ` [Qemu-devel] [PATCH v2 4/4] hw/ppc: QOM'ify spapr_vio.c xiaoqiang zhao
2017-01-06  4:49 ` [Qemu-devel] [PATCH v2 0/4] QOM'ify work for ppc David Gibson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).