[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 14/15] hw/timer/arm_timer: Extract icp_pit_realize() from icp_pit
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH 14/15] hw/timer/arm_timer: Extract icp_pit_realize() from icp_pit_init() |
Date: |
Wed, 31 May 2023 22:35:58 +0200 |
To make the next commit easier to digest, extract icp_pit_realize()
from icp_pit_init() as a preliminary step.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/timer/arm_timer.c | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/hw/timer/arm_timer.c b/hw/timer/arm_timer.c
index 874f9b63bc..82123b40c0 100644
--- a/hw/timer/arm_timer.c
+++ b/hw/timer/arm_timer.c
@@ -416,8 +416,6 @@ static void icp_pit_init(Object *obj)
for (unsigned i = 0; i < ARRAY_SIZE(s->timer); i++) {
s->timer[i] = arm_timer_new(tmr_freq[i], s->irq_in[i]);
sysbus_init_irq(dev, &s->irq[i]);
- sysbus_connect_irq(dev, i,
- qdev_get_gpio_in_named(DEVICE(obj), "timer-in", i));
}
memory_region_init_io(&s->iomem, obj, &icp_pit_ops, s,
@@ -427,12 +425,30 @@ static void icp_pit_init(Object *obj)
save themselves. */
}
+static void icp_pit_realize(DeviceState *dev, Error **errp)
+{
+ IntegratorPitState *s = INTEGRATOR_PIT(dev);
+
+ for (unsigned i = 0; i < ARRAY_SIZE(s->timer); i++) {
+ sysbus_connect_irq(SYS_BUS_DEVICE(dev), i,
+ qdev_get_gpio_in_named(dev, "timer-in", i));
+ }
+}
+
+static void icp_pit_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *k = DEVICE_CLASS(klass);
+
+ k->realize = icp_pit_realize;
+}
+
static const TypeInfo arm_timer_types[] = {
{
.name = TYPE_INTEGRATOR_PIT,
.parent = TYPE_SYS_BUS_DEVICE,
.instance_size = sizeof(IntegratorPitState),
.instance_init = icp_pit_init,
+ .class_init = icp_pit_class_init,
}, {
.name = TYPE_SP804,
--
2.38.1
- [PATCH 04/15] hw/timer/arm_timer: Remove pointless cast from void *, (continued)
- [PATCH 04/15] hw/timer/arm_timer: Remove pointless cast from void *, Philippe Mathieu-Daudé, 2023/05/31
- [PATCH 05/15] hw/timer/arm_timer: CamelCase rename icp_pit_state -> IntegratorPitState, Philippe Mathieu-Daudé, 2023/05/31
- [PATCH 06/15] hw/timer/arm_timer: CamelCase rename arm_timer_state -> ArmTimerState, Philippe Mathieu-Daudé, 2023/05/31
- [PATCH 07/15] hw/timer/arm_timer: Extract arm_timer_reset(), Philippe Mathieu-Daudé, 2023/05/31
- [PATCH 08/15] hw/timer/arm_timer: Rename arm_timer_init() -> arm_timer_new(), Philippe Mathieu-Daudé, 2023/05/31
- [PATCH 09/15] hw/timer/arm_timer: Convert ArmTimerState::freq to uint32_t type, Philippe Mathieu-Daudé, 2023/05/31
- [PATCH 10/15] hw/timer/arm_timer: Use array of frequency in SP804State, Philippe Mathieu-Daudé, 2023/05/31
- [PATCH 11/15] hw/timer/arm_timer: Iterate on timers using for() loop statement, Philippe Mathieu-Daudé, 2023/05/31
- [PATCH 12/15] hw/timer/arm_timer: Pass timer output IRQ as parameter to arm_timer_new, Philippe Mathieu-Daudé, 2023/05/31
- [PATCH 13/15] hw/timer/arm_timer: Fix misuse of SysBus IRQ in IcpPitState, Philippe Mathieu-Daudé, 2023/05/31
- [PATCH 14/15] hw/timer/arm_timer: Extract icp_pit_realize() from icp_pit_init(),
Philippe Mathieu-Daudé <=
- [PATCH 15/15] hw/timer/arm_timer: QOM'ify ARM_TIMER, Philippe Mathieu-Daudé, 2023/05/31