aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hw/input/ps2.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/hw/input/ps2.c b/hw/input/ps2.c
index 62ea4c2..eae7df2 100644
--- a/hw/input/ps2.c
+++ b/hw/input/ps2.c
@@ -1244,6 +1244,11 @@ static QemuInputHandler ps2_mouse_handler = {
.sync = ps2_mouse_sync,
};
+static void ps2_mouse_realize(DeviceState *dev, Error **errp)
+{
+ qemu_input_handler_register(dev, &ps2_mouse_handler);
+}
+
void *ps2_mouse_init(void (*update_irq)(void *, int), void *update_arg)
{
DeviceState *dev;
@@ -1259,8 +1264,6 @@ void *ps2_mouse_init(void (*update_irq)(void *, int), void *update_arg)
ps2->update_irq = update_irq;
ps2->update_arg = update_arg;
vmstate_register(NULL, 0, &vmstate_ps2_mouse, s);
- qemu_input_handler_register((DeviceState *)s,
- &ps2_mouse_handler);
return s;
}
@@ -1285,6 +1288,7 @@ static void ps2_mouse_class_init(ObjectClass *klass, void *data)
DeviceClass *dc = DEVICE_CLASS(klass);
PS2DeviceClass *ps2dc = PS2_DEVICE_CLASS(klass);
+ dc->realize = ps2_mouse_realize;
device_class_set_parent_reset(dc, ps2_mouse_reset,
&ps2dc->parent_reset);
}