diff options
author | Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> | 2022-07-12 22:52:21 +0100 |
---|---|---|
committer | Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> | 2022-07-18 19:28:45 +0100 |
commit | 6a05d0b3d1474ad5fd7ba1cc7040dffbc3c15a11 (patch) | |
tree | 4f49f6d33ebe2f20b0918f9b1cbf053600914e44 /hw | |
parent | 5b0138b31469a635069d5f645fbeb6c2f998cde2 (diff) |
pl050: don't use legacy ps2_kbd_init() function
Instantiate the PS2 keyboard device within PL050KbdState using
object_initialize_child() in pl050_kbd_init() and realize it in
pl050_kbd_realize() accordingly.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Tested-by: Helge Deller <deller@gmx.de>
Acked-by: Helge Deller <deller@gmx.de>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20220712215251.7944-11-mark.cave-ayland@ilande.co.uk>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/input/pl050.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/hw/input/pl050.c b/hw/input/pl050.c index fcc40758a3..64b579e877 100644 --- a/hw/input/pl050.c +++ b/hw/input/pl050.c @@ -160,17 +160,24 @@ static void pl050_realize(DeviceState *dev, Error **errp) static void pl050_kbd_realize(DeviceState *dev, Error **errp) { PL050DeviceClass *pdc = PL050_GET_CLASS(dev); + PL050KbdState *s = PL050_KBD_DEVICE(dev); PL050State *ps = PL050(dev); - ps->ps2dev = ps2_kbd_init(); + if (!sysbus_realize(SYS_BUS_DEVICE(&s->kbd), errp)) { + return; + } + + ps->ps2dev = PS2_DEVICE(&s->kbd); pdc->parent_realize(dev, errp); } static void pl050_kbd_init(Object *obj) { - PL050State *s = PL050(obj); + PL050KbdState *s = PL050_KBD_DEVICE(obj); + PL050State *ps = PL050(obj); - s->is_mouse = false; + ps->is_mouse = false; + object_initialize_child(obj, "kbd", &s->kbd, TYPE_PS2_KBD_DEVICE); } static void pl050_mouse_realize(DeviceState *dev, Error **errp) |