mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-21 00:53:27 -06:00
hw/char: QOM'ify exynos4210_uart.c
Drop the old Sysbus init and use instance_init and DeviceClass::realize instead Signed-off-by: xiaoqiang zhao <zxq_yx_007@163.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
d307c28ca9
commit
5b982482c1
1 changed files with 10 additions and 6 deletions
|
@ -629,22 +629,26 @@ DeviceState *exynos4210_uart_create(hwaddr addr,
|
||||||
return dev;
|
return dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int exynos4210_uart_init(SysBusDevice *dev)
|
static void exynos4210_uart_init(Object *obj)
|
||||||
{
|
{
|
||||||
|
SysBusDevice *dev = SYS_BUS_DEVICE(obj);
|
||||||
Exynos4210UartState *s = EXYNOS4210_UART(dev);
|
Exynos4210UartState *s = EXYNOS4210_UART(dev);
|
||||||
|
|
||||||
/* memory mapping */
|
/* memory mapping */
|
||||||
memory_region_init_io(&s->iomem, OBJECT(s), &exynos4210_uart_ops, s,
|
memory_region_init_io(&s->iomem, obj, &exynos4210_uart_ops, s,
|
||||||
"exynos4210.uart", EXYNOS4210_UART_REGS_MEM_SIZE);
|
"exynos4210.uart", EXYNOS4210_UART_REGS_MEM_SIZE);
|
||||||
sysbus_init_mmio(dev, &s->iomem);
|
sysbus_init_mmio(dev, &s->iomem);
|
||||||
|
|
||||||
sysbus_init_irq(dev, &s->irq);
|
sysbus_init_irq(dev, &s->irq);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void exynos4210_uart_realize(DeviceState *dev, Error **errp)
|
||||||
|
{
|
||||||
|
Exynos4210UartState *s = EXYNOS4210_UART(dev);
|
||||||
|
|
||||||
qemu_chr_fe_set_handlers(&s->chr, exynos4210_uart_can_receive,
|
qemu_chr_fe_set_handlers(&s->chr, exynos4210_uart_can_receive,
|
||||||
exynos4210_uart_receive, exynos4210_uart_event,
|
exynos4210_uart_receive, exynos4210_uart_event,
|
||||||
s, NULL, true);
|
s, NULL, true);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static Property exynos4210_uart_properties[] = {
|
static Property exynos4210_uart_properties[] = {
|
||||||
|
@ -658,9 +662,8 @@ static Property exynos4210_uart_properties[] = {
|
||||||
static void exynos4210_uart_class_init(ObjectClass *klass, void *data)
|
static void exynos4210_uart_class_init(ObjectClass *klass, void *data)
|
||||||
{
|
{
|
||||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||||
SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
|
|
||||||
|
|
||||||
k->init = exynos4210_uart_init;
|
dc->realize = exynos4210_uart_realize;
|
||||||
dc->reset = exynos4210_uart_reset;
|
dc->reset = exynos4210_uart_reset;
|
||||||
dc->props = exynos4210_uart_properties;
|
dc->props = exynos4210_uart_properties;
|
||||||
dc->vmsd = &vmstate_exynos4210_uart;
|
dc->vmsd = &vmstate_exynos4210_uart;
|
||||||
|
@ -670,6 +673,7 @@ static const TypeInfo exynos4210_uart_info = {
|
||||||
.name = TYPE_EXYNOS4210_UART,
|
.name = TYPE_EXYNOS4210_UART,
|
||||||
.parent = TYPE_SYS_BUS_DEVICE,
|
.parent = TYPE_SYS_BUS_DEVICE,
|
||||||
.instance_size = sizeof(Exynos4210UartState),
|
.instance_size = sizeof(Exynos4210UartState),
|
||||||
|
.instance_init = exynos4210_uart_init,
|
||||||
.class_init = exynos4210_uart_class_init,
|
.class_init = exynos4210_uart_class_init,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue