[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 02/22] block/noenand: Convert sysbus init function t
From: |
Mao Zhongyi |
Subject: |
[Qemu-devel] [PATCH 02/22] block/noenand: Convert sysbus init function to realize function |
Date: |
Mon, 19 Nov 2018 20:08:00 +0800 |
Use DeviceClass rather than SysBusDeviceClass in
onenand_class_init().
Cc: address@hidden
Cc: address@hidden
Cc: address@hidden
Signed-off-by: Mao Zhongyi <address@hidden>
Signed-off-by: Zhang Shengju <address@hidden>
---
hw/block/onenand.c | 19 ++++++++-----------
1 file changed, 8 insertions(+), 11 deletions(-)
diff --git a/hw/block/onenand.c b/hw/block/onenand.c
index 0cb8d7fa13..6bf89aac1d 100644
--- a/hw/block/onenand.c
+++ b/hw/block/onenand.c
@@ -768,9 +768,8 @@ static const MemoryRegionOps onenand_ops = {
.endianness = DEVICE_NATIVE_ENDIAN,
};
-static int onenand_initfn(SysBusDevice *sbd)
+static void onenand_realize(DeviceState *dev, Error **errp)
{
- DeviceState *dev = DEVICE(sbd);
OneNANDState *s = ONE_NAND(dev);
uint32_t size = 1 << (24 + ((s->id.dev >> 4) & 7));
void *ram;
@@ -790,14 +789,14 @@ static int onenand_initfn(SysBusDevice *sbd)
0xff, size + (size >> 5));
} else {
if (blk_is_read_only(s->blk)) {
- error_report("Can't use a read-only drive");
- return -1;
+ error_setg(errp, "Can't use a read-only drive");
+ return;
}
blk_set_perm(s->blk, BLK_PERM_CONSISTENT_READ | BLK_PERM_WRITE,
BLK_PERM_ALL, &local_err);
if (local_err) {
- error_report_err(local_err);
- return -1;
+ error_propagate(errp, local_err);
+ return;
}
s->blk_cur = s->blk;
}
@@ -814,15 +813,14 @@ static int onenand_initfn(SysBusDevice *sbd)
s->data[1][0] = ram + ((0x0200 + (1 << (PAGE_SHIFT - 1))) << s->shift);
s->data[1][1] = ram + ((0x8010 + (1 << (PAGE_SHIFT - 6))) << s->shift);
onenand_mem_setup(s);
- sysbus_init_irq(sbd, &s->intr);
- sysbus_init_mmio(sbd, &s->container);
+ sysbus_init_irq(SYS_BUS_DEVICE(dev), &s->intr);
+ sysbus_init_mmio(SYS_BUS_DEVICE(dev), &s->container);
vmstate_register(dev,
((s->shift & 0x7f) << 24)
| ((s->id.man & 0xff) << 16)
| ((s->id.dev & 0xff) << 8)
| (s->id.ver & 0xff),
&vmstate_onenand, s);
- return 0;
}
static Property onenand_properties[] = {
@@ -837,9 +835,8 @@ static Property onenand_properties[] = {
static void onenand_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
- SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
- k->init = onenand_initfn;
+ dc->realize = onenand_realize;
dc->reset = onenand_system_reset;
dc->props = onenand_properties;
}
--
2.17.1
- [Qemu-devel] [PATCH 21/22] event-facility: Change SysBusDeviceClass *sbdc to SysBusDeviceClass *sbc, (continued)
- [Qemu-devel] [PATCH 10/22] intc/puv3_intc: Convert sysbus init function to realize function, Mao Zhongyi, 2018/11/19
- [Qemu-devel] [PATCH 01/22] musicpal: Convert sysbus init function to realize function, Mao Zhongyi, 2018/11/19
- [Qemu-devel] [PATCH 03/22] char/grlib_apbuart: Convert sysbus init function to realize function, Mao Zhongyi, 2018/11/19
- [Qemu-devel] [PATCH 19/22] usb/tusb6010: Convert sysbus init function to realize function, Mao Zhongyi, 2018/11/19
- [Qemu-devel] [PATCH 17/22] timer/grlib_gptimer: Convert sysbus init function to realize function, Mao Zhongyi, 2018/11/19
- [Qemu-devel] [PATCH 16/22] timer/etraxfs_timer: Convert sysbus init function to realize function, Mao Zhongyi, 2018/11/19
- [Qemu-devel] [PATCH 02/22] block/noenand: Convert sysbus init function to realize function,
Mao Zhongyi <=
- [Qemu-devel] [PATCH 07/22] gpio/puv3_gpio: Convert sysbus init function to realize function, Mao Zhongyi, 2018/11/19
- [Qemu-devel] [PATCH 13/22] puv3_pm.c: Convert sysbus init function to realize function, Mao Zhongyi, 2018/11/19
- [Qemu-devel] [PATCH 05/22] display/g364fb: Convert sysbus init function to realize function, Mao Zhongyi, 2018/11/19
- [Qemu-devel] [PATCH 18/22] timer/puv3_ost: Convert sysbus init function to realize function, Mao Zhongyi, 2018/11/19
- Re: [Qemu-devel] [PATCH 00/22] QOM'ify SysBusDeviceClass->init, Cornelia Huck, 2018/11/19