* [Qemu-devel] [PATCH 00/17] some ARM platform QOM'ify work
@ 2016-06-07 10:34 xiaoqiang zhao
2016-06-07 10:34 ` [Qemu-devel] [PATCH 01/17] hw/i2c: QOM'ify bitbang_i2c.c xiaoqiang zhao
` (7 more replies)
0 siblings, 8 replies; 11+ messages in thread
From: xiaoqiang zhao @ 2016-06-07 10:34 UTC (permalink / raw)
To: qemu-devel; +Cc: qemu-arm, zhaoshenglong, peter.maydell, i.mitsyanko, balrogg
This patch series QOM'ify ARM platform related devices.
Where we drop the sysbus init function if possible and use
instance_init and DeviceClass::realize function.
xiaoqiang zhao (17):
hw/i2c: QOM'ify bitbang_i2c.c
hw/i2c: QOM'ify exynos4210_i2c.c
hw/i2c: QOM'ify omap_i2c.c
hw/i2c: QOM'ify versatile_i2c.c
hw/gpio: QOM'ify mpc8xxx.c
hw/gpio: QOM'ify omap_gpio.c
hw/gpio: QOM'ify pl061.c
hw/gpio: QOM'ify zaurus.c
hw/misc: QOM'ify arm_l2x0.c
hw/misc: QOM'ify eccmemctl.c
hw/misc: QOM'ify exynos4210_pmu.c
hw/misc: QOM'ify mst_fpga.c
hw/misc: QOM'ify slavio_misc.c
hw/dma: QOM'ify pxa2xx_dma.c
hw/dma: QOM'ify sparc32_dma.c
hw/dma: QOM'ify sun4m_iommu.c
hw/sd: QOM'ify pl181.c
hw/dma/pxa2xx_dma.c | 38 +++++++++++++++++-------------
hw/dma/sparc32_dma.c | 25 ++++++++++++--------
hw/dma/sun4m_iommu.c | 12 ++++------
hw/gpio/mpc8xxx.c | 20 +++++++++-------
hw/gpio/omap_gpio.c | 61 ++++++++++++++++++++++++------------------------
hw/gpio/pl061.c | 24 +++++++------------
hw/gpio/zaurus.c | 14 +++++------
hw/i2c/bitbang_i2c.c | 14 +++++------
hw/i2c/exynos4210_i2c.c | 13 +++++------
hw/i2c/omap_i2c.c | 44 ++++++++++++++++++++--------------
hw/i2c/versatile_i2c.c | 19 +++++----------
hw/misc/arm_l2x0.c | 11 ++++-----
hw/misc/eccmemctl.c | 25 +++++++++++++-------
hw/misc/exynos4210_pmu.c | 11 ++++-----
hw/misc/mst_fpga.c | 13 +++++------
hw/misc/slavio_misc.c | 43 ++++++++++++++--------------------
hw/sd/pl181.c | 26 +++++++++++++--------
17 files changed, 207 insertions(+), 206 deletions(-)
--
2.1.4
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 01/17] hw/i2c: QOM'ify bitbang_i2c.c
2016-06-07 10:34 [Qemu-devel] [PATCH 00/17] some ARM platform QOM'ify work xiaoqiang zhao
@ 2016-06-07 10:34 ` xiaoqiang zhao
2016-06-07 10:34 ` [Qemu-devel] [PATCH 02/17] hw/i2c: QOM'ify exynos4210_i2c.c xiaoqiang zhao
` (6 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: xiaoqiang zhao @ 2016-06-07 10:34 UTC (permalink / raw)
To: qemu-devel; +Cc: qemu-arm, zhaoshenglong, peter.maydell, i.mitsyanko, balrogg
Drop the old SysBus init function and use instance_init
Signed-off-by: xiaoqiang zhao <zxq_yx_007@163.com>
---
hw/i2c/bitbang_i2c.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/hw/i2c/bitbang_i2c.c b/hw/i2c/bitbang_i2c.c
index 6ed2060..d3a2989 100644
--- a/hw/i2c/bitbang_i2c.c
+++ b/hw/i2c/bitbang_i2c.c
@@ -210,13 +210,14 @@ static void bitbang_i2c_gpio_set(void *opaque, int irq, int level)
}
}
-static int gpio_i2c_init(SysBusDevice *sbd)
+static void gpio_i2c_init(Object *obj)
{
- DeviceState *dev = DEVICE(sbd);
- GPIOI2CState *s = GPIO_I2C(dev);
+ DeviceState *dev = DEVICE(obj);
+ GPIOI2CState *s = GPIO_I2C(obj);
+ SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
I2CBus *bus;
- memory_region_init(&s->dummy_iomem, OBJECT(s), "gpio_i2c", 0);
+ memory_region_init(&s->dummy_iomem, obj, "gpio_i2c", 0);
sysbus_init_mmio(sbd, &s->dummy_iomem);
bus = i2c_init_bus(dev, "i2c");
@@ -224,16 +225,12 @@ static int gpio_i2c_init(SysBusDevice *sbd)
qdev_init_gpio_in(dev, bitbang_i2c_gpio_set, 2);
qdev_init_gpio_out(dev, &s->out, 1);
-
- return 0;
}
static void gpio_i2c_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
- SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
- k->init = gpio_i2c_init;
set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories);
dc->desc = "Virtual GPIO to I2C bridge";
}
@@ -242,6 +239,7 @@ static const TypeInfo gpio_i2c_info = {
.name = TYPE_GPIO_I2C,
.parent = TYPE_SYS_BUS_DEVICE,
.instance_size = sizeof(GPIOI2CState),
+ .instance_init = gpio_i2c_init,
.class_init = gpio_i2c_class_init,
};
--
2.1.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 02/17] hw/i2c: QOM'ify exynos4210_i2c.c
2016-06-07 10:34 [Qemu-devel] [PATCH 00/17] some ARM platform QOM'ify work xiaoqiang zhao
2016-06-07 10:34 ` [Qemu-devel] [PATCH 01/17] hw/i2c: QOM'ify bitbang_i2c.c xiaoqiang zhao
@ 2016-06-07 10:34 ` xiaoqiang zhao
2016-06-07 10:34 ` [Qemu-devel] [PATCH 03/17] hw/i2c: QOM'ify omap_i2c.c xiaoqiang zhao
` (5 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: xiaoqiang zhao @ 2016-06-07 10:34 UTC (permalink / raw)
To: qemu-devel; +Cc: qemu-arm, zhaoshenglong, peter.maydell, i.mitsyanko, balrogg
* Rename the exynos4210_i2c_realize to exynos4210_i2c_init
* Drop the old SysBus init function and use instance_init
Signed-off-by: xiaoqiang zhao <zxq_yx_007@163.com>
---
hw/i2c/exynos4210_i2c.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/hw/i2c/exynos4210_i2c.c b/hw/i2c/exynos4210_i2c.c
index 8c2a2c1..c96fa7d 100644
--- a/hw/i2c/exynos4210_i2c.c
+++ b/hw/i2c/exynos4210_i2c.c
@@ -299,33 +299,32 @@ static void exynos4210_i2c_reset(DeviceState *d)
s->scl_free = true;
}
-static int exynos4210_i2c_realize(SysBusDevice *sbd)
+static void exynos4210_i2c_init(Object *obj)
{
- DeviceState *dev = DEVICE(sbd);
- Exynos4210I2CState *s = EXYNOS4_I2C(dev);
+ DeviceState *dev = DEVICE(obj);
+ Exynos4210I2CState *s = EXYNOS4_I2C(obj);
+ SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
- memory_region_init_io(&s->iomem, OBJECT(s), &exynos4210_i2c_ops, s,
+ memory_region_init_io(&s->iomem, obj, &exynos4210_i2c_ops, s,
TYPE_EXYNOS4_I2C, EXYNOS4_I2C_MEM_SIZE);
sysbus_init_mmio(sbd, &s->iomem);
sysbus_init_irq(sbd, &s->irq);
s->bus = i2c_init_bus(dev, "i2c");
- return 0;
}
static void exynos4210_i2c_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
- SysBusDeviceClass *sbdc = SYS_BUS_DEVICE_CLASS(klass);
dc->vmsd = &exynos4210_i2c_vmstate;
dc->reset = exynos4210_i2c_reset;
- sbdc->init = exynos4210_i2c_realize;
}
static const TypeInfo exynos4210_i2c_type_info = {
.name = TYPE_EXYNOS4_I2C,
.parent = TYPE_SYS_BUS_DEVICE,
.instance_size = sizeof(Exynos4210I2CState),
+ .instance_init = exynos4210_i2c_init,
.class_init = exynos4210_i2c_class_init,
};
--
2.1.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 03/17] hw/i2c: QOM'ify omap_i2c.c
2016-06-07 10:34 [Qemu-devel] [PATCH 00/17] some ARM platform QOM'ify work xiaoqiang zhao
2016-06-07 10:34 ` [Qemu-devel] [PATCH 01/17] hw/i2c: QOM'ify bitbang_i2c.c xiaoqiang zhao
2016-06-07 10:34 ` [Qemu-devel] [PATCH 02/17] hw/i2c: QOM'ify exynos4210_i2c.c xiaoqiang zhao
@ 2016-06-07 10:34 ` xiaoqiang zhao
2016-06-07 10:34 ` [Qemu-devel] [PATCH 04/17] hw/i2c: QOM'ify versatile_i2c.c xiaoqiang zhao
` (4 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: xiaoqiang zhao @ 2016-06-07 10:34 UTC (permalink / raw)
To: qemu-devel; +Cc: qemu-arm, zhaoshenglong, peter.maydell, i.mitsyanko, balrogg
* Split the omap_i2c_init into an instance_init and realize function
* Drop the old SysBus init function and use instance_init
Signed-off-by: xiaoqiang zhao <zxq_yx_007@163.com>
---
hw/i2c/omap_i2c.c | 44 ++++++++++++++++++++++++++------------------
1 file changed, 26 insertions(+), 18 deletions(-)
diff --git a/hw/i2c/omap_i2c.c b/hw/i2c/omap_i2c.c
index 67fbbff..f7c92ea 100644
--- a/hw/i2c/omap_i2c.c
+++ b/hw/i2c/omap_i2c.c
@@ -22,6 +22,7 @@
#include "hw/arm/omap.h"
#include "hw/sysbus.h"
#include "qemu/error-report.h"
+#include "qapi/error.h"
#define TYPE_OMAP_I2C "omap_i2c"
#define OMAP_I2C(obj) OBJECT_CHECK(OMAPI2CState, (obj), TYPE_OMAP_I2C)
@@ -445,29 +446,35 @@ static const MemoryRegionOps omap_i2c_ops = {
.endianness = DEVICE_NATIVE_ENDIAN,
};
-static int omap_i2c_init(SysBusDevice *sbd)
+static void omap_i2c_init(Object *obj)
{
- DeviceState *dev = DEVICE(sbd);
- OMAPI2CState *s = OMAP_I2C(dev);
-
- if (!s->fclk) {
- error_report("omap_i2c: fclk not connected");
- return -1;
- }
- if (s->revision >= OMAP2_INTR_REV && !s->iclk) {
- /* Note that OMAP1 doesn't have a separate interface clock */
- error_report("omap_i2c: iclk not connected");
- return -1;
- }
+ DeviceState *dev = DEVICE(obj);
+ OMAPI2CState *s = OMAP_I2C(obj);
+ SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
sysbus_init_irq(sbd, &s->irq);
sysbus_init_irq(sbd, &s->drq[0]);
sysbus_init_irq(sbd, &s->drq[1]);
- memory_region_init_io(&s->iomem, OBJECT(s), &omap_i2c_ops, s, "omap.i2c",
- (s->revision < OMAP2_INTR_REV) ? 0x800 : 0x1000);
sysbus_init_mmio(sbd, &s->iomem);
s->bus = i2c_init_bus(dev, NULL);
- return 0;
+}
+
+static void omap_i2c_realize(DeviceState *dev, Error **errp)
+{
+ OMAPI2CState *s = OMAP_I2C(dev);
+
+ memory_region_init_io(&s->iomem, OBJECT(dev), &omap_i2c_ops, s, "omap.i2c",
+ (s->revision < OMAP2_INTR_REV) ? 0x800 : 0x1000);
+
+ if (!s->fclk) {
+ error_setg(errp, "omap_i2c: fclk not connected");
+ return;
+ }
+ if (s->revision >= OMAP2_INTR_REV && !s->iclk) {
+ /* Note that OMAP1 doesn't have a separate interface clock */
+ error_setg(errp, "omap_i2c: iclk not connected");
+ return;
+ }
}
static Property omap_i2c_properties[] = {
@@ -480,18 +487,19 @@ static Property omap_i2c_properties[] = {
static void omap_i2c_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
- SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
- k->init = omap_i2c_init;
+
dc->props = omap_i2c_properties;
dc->reset = omap_i2c_reset;
/* Reason: pointer properties "iclk", "fclk" */
dc->cannot_instantiate_with_device_add_yet = true;
+ dc->realize = omap_i2c_realize;
}
static const TypeInfo omap_i2c_info = {
.name = TYPE_OMAP_I2C,
.parent = TYPE_SYS_BUS_DEVICE,
.instance_size = sizeof(OMAPI2CState),
+ .instance_init = omap_i2c_init,
.class_init = omap_i2c_class_init,
};
--
2.1.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 04/17] hw/i2c: QOM'ify versatile_i2c.c
2016-06-07 10:34 [Qemu-devel] [PATCH 00/17] some ARM platform QOM'ify work xiaoqiang zhao
` (2 preceding siblings ...)
2016-06-07 10:34 ` [Qemu-devel] [PATCH 03/17] hw/i2c: QOM'ify omap_i2c.c xiaoqiang zhao
@ 2016-06-07 10:34 ` xiaoqiang zhao
2016-06-07 10:34 ` [Qemu-devel] [PATCH 05/17] hw/gpio: QOM'ify mpc8xxx.c xiaoqiang zhao
` (3 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: xiaoqiang zhao @ 2016-06-07 10:34 UTC (permalink / raw)
To: qemu-devel; +Cc: qemu-arm, zhaoshenglong, peter.maydell, i.mitsyanko, balrogg
Drop the old SysBus init function and use instance_init
Signed-off-by: xiaoqiang zhao <zxq_yx_007@163.com>
---
hw/i2c/versatile_i2c.c | 19 ++++++-------------
1 file changed, 6 insertions(+), 13 deletions(-)
diff --git a/hw/i2c/versatile_i2c.c b/hw/i2c/versatile_i2c.c
index 0bce524..da9f298 100644
--- a/hw/i2c/versatile_i2c.c
+++ b/hw/i2c/versatile_i2c.c
@@ -79,32 +79,25 @@ static const MemoryRegionOps versatile_i2c_ops = {
.endianness = DEVICE_NATIVE_ENDIAN,
};
-static int versatile_i2c_init(SysBusDevice *sbd)
+static void versatile_i2c_init(Object *obj)
{
- DeviceState *dev = DEVICE(sbd);
- VersatileI2CState *s = VERSATILE_I2C(dev);
+ DeviceState *dev = DEVICE(obj);
+ VersatileI2CState *s = VERSATILE_I2C(obj);
+ SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
I2CBus *bus;
bus = i2c_init_bus(dev, "i2c");
s->bitbang = bitbang_i2c_init(bus);
- memory_region_init_io(&s->iomem, OBJECT(s), &versatile_i2c_ops, s,
+ memory_region_init_io(&s->iomem, obj, &versatile_i2c_ops, s,
"versatile_i2c", 0x1000);
sysbus_init_mmio(sbd, &s->iomem);
- return 0;
-}
-
-static void versatile_i2c_class_init(ObjectClass *klass, void *data)
-{
- SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
-
- k->init = versatile_i2c_init;
}
static const TypeInfo versatile_i2c_info = {
.name = TYPE_VERSATILE_I2C,
.parent = TYPE_SYS_BUS_DEVICE,
.instance_size = sizeof(VersatileI2CState),
- .class_init = versatile_i2c_class_init,
+ .instance_init = versatile_i2c_init,
};
static void versatile_i2c_register_types(void)
--
2.1.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 05/17] hw/gpio: QOM'ify mpc8xxx.c
2016-06-07 10:34 [Qemu-devel] [PATCH 00/17] some ARM platform QOM'ify work xiaoqiang zhao
` (3 preceding siblings ...)
2016-06-07 10:34 ` [Qemu-devel] [PATCH 04/17] hw/i2c: QOM'ify versatile_i2c.c xiaoqiang zhao
@ 2016-06-07 10:34 ` xiaoqiang zhao
2016-06-07 10:34 ` [Qemu-devel] [PATCH 06/17] hw/gpio: QOM'ify omap_gpio.c xiaoqiang zhao
` (2 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: xiaoqiang zhao @ 2016-06-07 10:34 UTC (permalink / raw)
To: qemu-devel; +Cc: qemu-arm, zhaoshenglong, peter.maydell, i.mitsyanko, balrogg
* 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 d149719..e12edb4 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.1.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 06/17] hw/gpio: QOM'ify omap_gpio.c
2016-06-07 10:34 [Qemu-devel] [PATCH 00/17] some ARM platform QOM'ify work xiaoqiang zhao
` (4 preceding siblings ...)
2016-06-07 10:34 ` [Qemu-devel] [PATCH 05/17] hw/gpio: QOM'ify mpc8xxx.c xiaoqiang zhao
@ 2016-06-07 10:34 ` xiaoqiang zhao
2016-06-07 21:32 ` [Qemu-devel] [PATCH 00/17] some ARM platform QOM'ify work Mark Cave-Ayland
2016-06-09 18:22 ` Peter Maydell
7 siblings, 0 replies; 11+ messages in thread
From: xiaoqiang zhao @ 2016-06-07 10:34 UTC (permalink / raw)
To: qemu-devel; +Cc: qemu-arm, zhaoshenglong, peter.maydell, i.mitsyanko, balrogg
* Split the old SysBus init into an instance_init and
DeviceClass::realize function
* Drop the SysBus init function
Signed-off-by: xiaoqiang zhao <zxq_yx_007@163.com>
---
hw/gpio/omap_gpio.c | 61 +++++++++++++++++++++++++++--------------------------
1 file changed, 31 insertions(+), 30 deletions(-)
diff --git a/hw/gpio/omap_gpio.c b/hw/gpio/omap_gpio.c
index 9b1b004..dabef4a 100644
--- a/hw/gpio/omap_gpio.c
+++ b/hw/gpio/omap_gpio.c
@@ -23,6 +23,7 @@
#include "hw/arm/omap.h"
#include "hw/sysbus.h"
#include "qemu/error-report.h"
+#include "qapi/error.h"
struct omap_gpio_s {
qemu_irq irq;
@@ -678,48 +679,46 @@ static const MemoryRegionOps omap2_gpif_top_ops = {
.endianness = DEVICE_NATIVE_ENDIAN,
};
-static int omap_gpio_init(SysBusDevice *sbd)
+static void omap_gpio_init(Object *obj)
{
- DeviceState *dev = DEVICE(sbd);
- struct omap_gpif_s *s = OMAP1_GPIO(dev);
+ DeviceState *dev = DEVICE(obj);
+ struct omap_gpif_s *s = OMAP1_GPIO(obj);
+ SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
- if (!s->clk) {
- error_report("omap-gpio: clk not connected");
- return -1;
- }
qdev_init_gpio_in(dev, omap_gpio_set, 16);
qdev_init_gpio_out(dev, s->omap1.handler, 16);
sysbus_init_irq(sbd, &s->omap1.irq);
- memory_region_init_io(&s->iomem, OBJECT(s), &omap_gpio_ops, &s->omap1,
+ memory_region_init_io(&s->iomem, obj, &omap_gpio_ops, &s->omap1,
"omap.gpio", 0x1000);
sysbus_init_mmio(sbd, &s->iomem);
- return 0;
}
-static int omap2_gpio_init(SysBusDevice *sbd)
+static void omap_gpio_realize(DeviceState *dev, Error **errp)
+{
+ struct omap_gpif_s *s = OMAP1_GPIO(dev);
+
+ if (!s->clk) {
+ error_setg(errp, "omap-gpio: clk not connected");
+ }
+}
+
+static void omap2_gpio_realize(DeviceState *dev, Error **errp)
{
- DeviceState *dev = DEVICE(sbd);
struct omap2_gpif_s *s = OMAP2_GPIO(dev);
+ SysBusDevice *sbd = SYS_BUS_DEVICE(dev);
int i;
if (!s->iclk) {
- error_report("omap2-gpio: iclk not connected");
- return -1;
+ error_setg(errp, "omap2-gpio: iclk not connected");
+ return;
}
s->modulecount = s->mpu_model < omap2430 ? 4
- : s->mpu_model < omap3430 ? 5
- : 6;
-
- for (i = 0; i < s->modulecount; i++) {
- if (!s->fclk[i]) {
- error_report("omap2-gpio: fclk%d not connected", i);
- return -1;
- }
- }
+ : s->mpu_model < omap3430 ? 5
+ : 6;
if (s->mpu_model < omap3430) {
- memory_region_init_io(&s->iomem, OBJECT(s), &omap2_gpif_top_ops, s,
+ memory_region_init_io(&s->iomem, OBJECT(dev), &omap2_gpif_top_ops, s,
"omap2.gpio", 0x1000);
sysbus_init_mmio(sbd, &s->iomem);
}
@@ -732,17 +731,20 @@ static int omap2_gpio_init(SysBusDevice *sbd)
for (i = 0; i < s->modulecount; i++) {
struct omap2_gpio_s *m = &s->modules[i];
+ if (!s->fclk[i]) {
+ error_setg(errp, "omap2-gpio: fclk%d not connected", i);
+ return;
+ }
+
m->revision = (s->mpu_model < omap3430) ? 0x18 : 0x25;
m->handler = &s->handler[i * 32];
sysbus_init_irq(sbd, &m->irq[0]); /* mpu irq */
sysbus_init_irq(sbd, &m->irq[1]); /* dsp irq */
sysbus_init_irq(sbd, &m->wkup);
- memory_region_init_io(&m->iomem, OBJECT(s), &omap2_gpio_module_ops, m,
+ memory_region_init_io(&m->iomem, OBJECT(dev), &omap2_gpio_module_ops, m,
"omap.gpio-module", 0x1000);
sysbus_init_mmio(sbd, &m->iomem);
}
-
- return 0;
}
/* Using qdev pointer properties for the clocks is not ideal.
@@ -766,9 +768,8 @@ static Property omap_gpio_properties[] = {
static void omap_gpio_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
- SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
- k->init = omap_gpio_init;
+ dc->realize = omap_gpio_realize;
dc->reset = omap_gpif_reset;
dc->props = omap_gpio_properties;
/* Reason: pointer property "clk" */
@@ -779,6 +780,7 @@ static const TypeInfo omap_gpio_info = {
.name = TYPE_OMAP1_GPIO,
.parent = TYPE_SYS_BUS_DEVICE,
.instance_size = sizeof(struct omap_gpif_s),
+ .instance_init = omap_gpio_init,
.class_init = omap_gpio_class_init,
};
@@ -797,9 +799,8 @@ static Property omap2_gpio_properties[] = {
static void omap2_gpio_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
- SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
- k->init = omap2_gpio_init;
+ dc->realize = omap2_gpio_realize;
dc->reset = omap2_gpif_reset;
dc->props = omap2_gpio_properties;
/* Reason: pointer properties "iclk", "fclk0", ..., "fclk5" */
--
2.1.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 00/17] some ARM platform QOM'ify work
2016-06-07 10:34 [Qemu-devel] [PATCH 00/17] some ARM platform QOM'ify work xiaoqiang zhao
` (5 preceding siblings ...)
2016-06-07 10:34 ` [Qemu-devel] [PATCH 06/17] hw/gpio: QOM'ify omap_gpio.c xiaoqiang zhao
@ 2016-06-07 21:32 ` Mark Cave-Ayland
2016-06-07 21:41 ` Peter Maydell
2016-06-08 3:48 ` xiaoqiang zhao
2016-06-09 18:22 ` Peter Maydell
7 siblings, 2 replies; 11+ messages in thread
From: Mark Cave-Ayland @ 2016-06-07 21:32 UTC (permalink / raw)
To: xiaoqiang zhao, qemu-devel
Cc: i.mitsyanko, peter.maydell, qemu-arm, zhaoshenglong
On 07/06/16 11:34, xiaoqiang zhao wrote:
> This patch series QOM'ify ARM platform related devices.
> Where we drop the sysbus init function if possible and use
> instance_init and DeviceClass::realize function.
>
> xiaoqiang zhao (17):
> hw/i2c: QOM'ify bitbang_i2c.c
> hw/i2c: QOM'ify exynos4210_i2c.c
> hw/i2c: QOM'ify omap_i2c.c
> hw/i2c: QOM'ify versatile_i2c.c
> hw/gpio: QOM'ify mpc8xxx.c
> hw/gpio: QOM'ify omap_gpio.c
> hw/gpio: QOM'ify pl061.c
> hw/gpio: QOM'ify zaurus.c
> hw/misc: QOM'ify arm_l2x0.c
> hw/misc: QOM'ify eccmemctl.c
> hw/misc: QOM'ify exynos4210_pmu.c
> hw/misc: QOM'ify mst_fpga.c
> hw/misc: QOM'ify slavio_misc.c
> hw/dma: QOM'ify pxa2xx_dma.c
> hw/dma: QOM'ify sparc32_dma.c
> hw/dma: QOM'ify sun4m_iommu.c
> hw/sd: QOM'ify pl181.c
>
> hw/dma/pxa2xx_dma.c | 38 +++++++++++++++++-------------
> hw/dma/sparc32_dma.c | 25 ++++++++++++--------
> hw/dma/sun4m_iommu.c | 12 ++++------
> hw/gpio/mpc8xxx.c | 20 +++++++++-------
> hw/gpio/omap_gpio.c | 61 ++++++++++++++++++++++++------------------------
> hw/gpio/pl061.c | 24 +++++++------------
> hw/gpio/zaurus.c | 14 +++++------
> hw/i2c/bitbang_i2c.c | 14 +++++------
> hw/i2c/exynos4210_i2c.c | 13 +++++------
> hw/i2c/omap_i2c.c | 44 ++++++++++++++++++++--------------
> hw/i2c/versatile_i2c.c | 19 +++++----------
> hw/misc/arm_l2x0.c | 11 ++++-----
> hw/misc/eccmemctl.c | 25 +++++++++++++-------
> hw/misc/exynos4210_pmu.c | 11 ++++-----
> hw/misc/mst_fpga.c | 13 +++++------
> hw/misc/slavio_misc.c | 43 ++++++++++++++--------------------
> hw/sd/pl181.c | 26 +++++++++++++--------
> 17 files changed, 207 insertions(+), 206 deletions(-)
Patches 16 and 17 for sparc32_dma and sun4m_iommu are actually sun4m
SPARC rather than ARM devices, so while I don't mind if these go through
someone else's tree then please ensure that you also test
qemu-system-sparc thoroughly with these patches.
ATB,
Mark.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 00/17] some ARM platform QOM'ify work
2016-06-07 21:32 ` [Qemu-devel] [PATCH 00/17] some ARM platform QOM'ify work Mark Cave-Ayland
@ 2016-06-07 21:41 ` Peter Maydell
2016-06-08 3:48 ` xiaoqiang zhao
1 sibling, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2016-06-07 21:41 UTC (permalink / raw)
To: Mark Cave-Ayland
Cc: xiaoqiang zhao, QEMU Developers, Igor Mitsyanko, qemu-arm,
Shannon Zhao
On 7 June 2016 at 22:32, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> wrote:
> On 07/06/16 11:34, xiaoqiang zhao wrote:
>
>> This patch series QOM'ify ARM platform related devices.
>> Where we drop the sysbus init function if possible and use
>> instance_init and DeviceClass::realize function.
>>
>> xiaoqiang zhao (17):
>> hw/i2c: QOM'ify bitbang_i2c.c
>> hw/i2c: QOM'ify exynos4210_i2c.c
>> hw/i2c: QOM'ify omap_i2c.c
>> hw/i2c: QOM'ify versatile_i2c.c
>> hw/gpio: QOM'ify mpc8xxx.c
>> hw/gpio: QOM'ify omap_gpio.c
>> hw/gpio: QOM'ify pl061.c
>> hw/gpio: QOM'ify zaurus.c
>> hw/misc: QOM'ify arm_l2x0.c
>> hw/misc: QOM'ify eccmemctl.c
>> hw/misc: QOM'ify exynos4210_pmu.c
>> hw/misc: QOM'ify mst_fpga.c
>> hw/misc: QOM'ify slavio_misc.c
>> hw/dma: QOM'ify pxa2xx_dma.c
>> hw/dma: QOM'ify sparc32_dma.c
>> hw/dma: QOM'ify sun4m_iommu.c
>> hw/sd: QOM'ify pl181.c
>>
>> hw/dma/pxa2xx_dma.c | 38 +++++++++++++++++-------------
>> hw/dma/sparc32_dma.c | 25 ++++++++++++--------
>> hw/dma/sun4m_iommu.c | 12 ++++------
>> hw/gpio/mpc8xxx.c | 20 +++++++++-------
>> hw/gpio/omap_gpio.c | 61 ++++++++++++++++++++++++------------------------
>> hw/gpio/pl061.c | 24 +++++++------------
>> hw/gpio/zaurus.c | 14 +++++------
>> hw/i2c/bitbang_i2c.c | 14 +++++------
>> hw/i2c/exynos4210_i2c.c | 13 +++++------
>> hw/i2c/omap_i2c.c | 44 ++++++++++++++++++++--------------
>> hw/i2c/versatile_i2c.c | 19 +++++----------
>> hw/misc/arm_l2x0.c | 11 ++++-----
>> hw/misc/eccmemctl.c | 25 +++++++++++++-------
>> hw/misc/exynos4210_pmu.c | 11 ++++-----
>> hw/misc/mst_fpga.c | 13 +++++------
>> hw/misc/slavio_misc.c | 43 ++++++++++++++--------------------
>> hw/sd/pl181.c | 26 +++++++++++++--------
>> 17 files changed, 207 insertions(+), 206 deletions(-)
>
> Patches 16 and 17 for sparc32_dma and sun4m_iommu are actually sun4m
> SPARC rather than ARM devices, so while I don't mind if these go through
> someone else's tree then please ensure that you also test
> qemu-system-sparc thoroughly with these patches.
I don't have a good set of sparc test images, so probably
better if you take those. I think eccmemctl.c is sparc too.
mpc8xxx.c is PPC.
thanks
-- PMM
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 00/17] some ARM platform QOM'ify work
2016-06-07 21:32 ` [Qemu-devel] [PATCH 00/17] some ARM platform QOM'ify work Mark Cave-Ayland
2016-06-07 21:41 ` Peter Maydell
@ 2016-06-08 3:48 ` xiaoqiang zhao
1 sibling, 0 replies; 11+ messages in thread
From: xiaoqiang zhao @ 2016-06-08 3:48 UTC (permalink / raw)
To: Mark Cave-Ayland, qemu-devel
Cc: i.mitsyanko, peter.maydell, qemu-arm, zhaoshenglong
在 2016年06月08日 05:32, Mark Cave-Ayland 写道:
> On 07/06/16 11:34, xiaoqiang zhao wrote:
>
>> This patch series QOM'ify ARM platform related devices.
>> Where we drop the sysbus init function if possible and use
>> instance_init and DeviceClass::realize function.
>>
>> xiaoqiang zhao (17):
>> hw/i2c: QOM'ify bitbang_i2c.c
>> hw/i2c: QOM'ify exynos4210_i2c.c
>> hw/i2c: QOM'ify omap_i2c.c
>> hw/i2c: QOM'ify versatile_i2c.c
>> hw/gpio: QOM'ify mpc8xxx.c
>> hw/gpio: QOM'ify omap_gpio.c
>> hw/gpio: QOM'ify pl061.c
>> hw/gpio: QOM'ify zaurus.c
>> hw/misc: QOM'ify arm_l2x0.c
>> hw/misc: QOM'ify eccmemctl.c
>> hw/misc: QOM'ify exynos4210_pmu.c
>> hw/misc: QOM'ify mst_fpga.c
>> hw/misc: QOM'ify slavio_misc.c
>> hw/dma: QOM'ify pxa2xx_dma.c
>> hw/dma: QOM'ify sparc32_dma.c
>> hw/dma: QOM'ify sun4m_iommu.c
>> hw/sd: QOM'ify pl181.c
>>
>> hw/dma/pxa2xx_dma.c | 38 +++++++++++++++++-------------
>> hw/dma/sparc32_dma.c | 25 ++++++++++++--------
>> hw/dma/sun4m_iommu.c | 12 ++++------
>> hw/gpio/mpc8xxx.c | 20 +++++++++-------
>> hw/gpio/omap_gpio.c | 61 ++++++++++++++++++++++++------------------------
>> hw/gpio/pl061.c | 24 +++++++------------
>> hw/gpio/zaurus.c | 14 +++++------
>> hw/i2c/bitbang_i2c.c | 14 +++++------
>> hw/i2c/exynos4210_i2c.c | 13 +++++------
>> hw/i2c/omap_i2c.c | 44 ++++++++++++++++++++--------------
>> hw/i2c/versatile_i2c.c | 19 +++++----------
>> hw/misc/arm_l2x0.c | 11 ++++-----
>> hw/misc/eccmemctl.c | 25 +++++++++++++-------
>> hw/misc/exynos4210_pmu.c | 11 ++++-----
>> hw/misc/mst_fpga.c | 13 +++++------
>> hw/misc/slavio_misc.c | 43 ++++++++++++++--------------------
>> hw/sd/pl181.c | 26 +++++++++++++--------
>> 17 files changed, 207 insertions(+), 206 deletions(-)
> Patches 16 and 17 for sparc32_dma and sun4m_iommu are actually sun4m
> SPARC rather than ARM devices, so while I don't mind if these go through
> someone else's tree then please ensure that you also test
> qemu-system-sparc thoroughly with these patches.
>
>
> ATB,
>
> Mark.
>
I have tested with following cmdline:
qemu-system-sparc -hda /home/hitmoon/debian_etch_sparc_small.qcow2
default machine is SS-5 and guest is debian, It seems everything is ok!
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 00/17] some ARM platform QOM'ify work
2016-06-07 10:34 [Qemu-devel] [PATCH 00/17] some ARM platform QOM'ify work xiaoqiang zhao
` (6 preceding siblings ...)
2016-06-07 21:32 ` [Qemu-devel] [PATCH 00/17] some ARM platform QOM'ify work Mark Cave-Ayland
@ 2016-06-09 18:22 ` Peter Maydell
7 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2016-06-09 18:22 UTC (permalink / raw)
To: xiaoqiang zhao
Cc: QEMU Developers, qemu-arm, Shannon Zhao, Igor Mitsyanko,
Andrew Zaborowski
On 7 June 2016 at 11:34, xiaoqiang zhao <zxq_yx_007@163.com> wrote:
> This patch series QOM'ify ARM platform related devices.
> Where we drop the sysbus init function if possible and use
> instance_init and DeviceClass::realize function.
>
> xiaoqiang zhao (17):
> hw/i2c: QOM'ify bitbang_i2c.c
> hw/i2c: QOM'ify exynos4210_i2c.c
> hw/i2c: QOM'ify omap_i2c.c
> hw/i2c: QOM'ify versatile_i2c.c
> hw/gpio: QOM'ify mpc8xxx.c
> hw/gpio: QOM'ify omap_gpio.c
> hw/gpio: QOM'ify pl061.c
> hw/gpio: QOM'ify zaurus.c
> hw/misc: QOM'ify arm_l2x0.c
> hw/misc: QOM'ify eccmemctl.c
> hw/misc: QOM'ify exynos4210_pmu.c
> hw/misc: QOM'ify mst_fpga.c
> hw/misc: QOM'ify slavio_misc.c
> hw/dma: QOM'ify pxa2xx_dma.c
> hw/dma: QOM'ify sparc32_dma.c
> hw/dma: QOM'ify sun4m_iommu.c
> hw/sd: QOM'ify pl181.c
This patch series doesn't seem to have been sent threaded
correctly -- it looks like it's three separate threads,
with 0-6 in one, 7-9 in another and 10-17 in a third.
This breaks the automatic tooling for applying patchsets.
Please fix this, and send a fresh series with only the
ARM devices. No sparc, no ppc, so drop patches 5, 10, 13, 15, 16.
You should send separate series with just the PPC devices and
just the SPARC devices, cc'ing the relevant maintainers.
thanks
-- PMM
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2016-06-09 18:23 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-06-07 10:34 [Qemu-devel] [PATCH 00/17] some ARM platform QOM'ify work xiaoqiang zhao
2016-06-07 10:34 ` [Qemu-devel] [PATCH 01/17] hw/i2c: QOM'ify bitbang_i2c.c xiaoqiang zhao
2016-06-07 10:34 ` [Qemu-devel] [PATCH 02/17] hw/i2c: QOM'ify exynos4210_i2c.c xiaoqiang zhao
2016-06-07 10:34 ` [Qemu-devel] [PATCH 03/17] hw/i2c: QOM'ify omap_i2c.c xiaoqiang zhao
2016-06-07 10:34 ` [Qemu-devel] [PATCH 04/17] hw/i2c: QOM'ify versatile_i2c.c xiaoqiang zhao
2016-06-07 10:34 ` [Qemu-devel] [PATCH 05/17] hw/gpio: QOM'ify mpc8xxx.c xiaoqiang zhao
2016-06-07 10:34 ` [Qemu-devel] [PATCH 06/17] hw/gpio: QOM'ify omap_gpio.c xiaoqiang zhao
2016-06-07 21:32 ` [Qemu-devel] [PATCH 00/17] some ARM platform QOM'ify work Mark Cave-Ayland
2016-06-07 21:41 ` Peter Maydell
2016-06-08 3:48 ` xiaoqiang zhao
2016-06-09 18:22 ` Peter Maydell
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).