[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 22/50] pckbd: implement i8042_mmio_reset() for I8042_MMIO device
From: |
Mark Cave-Ayland |
Subject: |
[PATCH 22/50] pckbd: implement i8042_mmio_reset() for I8042_MMIO device |
Date: |
Sun, 22 May 2022 19:18:08 +0100 |
This allows the I8042_MMIO reset function to be registered directly within the
DeviceClass rather than using qemu_register_reset() directly.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
---
hw/input/pckbd.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/hw/input/pckbd.c b/hw/input/pckbd.c
index bbdd3bc568..df443aaff2 100644
--- a/hw/input/pckbd.c
+++ b/hw/input/pckbd.c
@@ -665,10 +665,20 @@ static const MemoryRegionOps i8042_mmio_ops = {
.endianness = DEVICE_NATIVE_ENDIAN,
};
+static void i8042_mmio_reset(DeviceState *dev)
+{
+ MMIOKBDState *s = I8042_MMIO(dev);
+ KBDState *ks = &s->kbd;
+
+ ks->extended_state = true;
+ kbd_reset(ks);
+}
+
static void i8042_mmio_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
+ dc->reset = i8042_mmio_reset;
set_bit(DEVICE_CATEGORY_INPUT, dc->categories);
}
@@ -687,15 +697,12 @@ void i8042_mm_init(qemu_irq kbd_irq, qemu_irq mouse_irq,
s->irq_mouse = mouse_irq;
s->mask = mask;
- s->extended_state = true;
-
vmstate_register(NULL, 0, &vmstate_kbd, s);
memory_region_init_io(region, NULL, &i8042_mmio_ops, s, "i8042", size);
s->kbd = ps2_kbd_init(kbd_update_kbd_irq, s);
s->mouse = ps2_mouse_init(kbd_update_aux_irq, s);
- qemu_register_reset(kbd_reset, s);
}
static const TypeInfo i8042_mmio_info = {
--
2.20.1
- [PATCH 12/50] ps2: don't use vmstate_register() in ps2_kbd_init(), (continued)
- [PATCH 12/50] ps2: don't use vmstate_register() in ps2_kbd_init(), Mark Cave-Ayland, 2022/05/22
- [PATCH 11/50] ps2: implement ps2_mouse_realize() and use it to register ps2_mouse_handler, Mark Cave-Ayland, 2022/05/22
- [PATCH 14/50] pl050: checkpatch fixes, Mark Cave-Ayland, 2022/05/22
- [PATCH 15/50] pl050: split pl050_update_irq() into separate pl050_set_irq() and pl050_update_irq() functions, Mark Cave-Ayland, 2022/05/22
- [PATCH 13/50] ps2: don't use vmstate_register() in ps2_mouse_init(), Mark Cave-Ayland, 2022/05/22
- [PATCH 17/50] lasips2: rename ps2dev_update_irq() to lasips2_port_set_irq(), Mark Cave-Ayland, 2022/05/22
- [PATCH 16/50] lasips2: spacing fixes, Mark Cave-Ayland, 2022/05/22
- [PATCH 19/50] pckbd: move KBDState from pckbd.c to i8042.h, Mark Cave-Ayland, 2022/05/22
- [PATCH 18/50] pckbd: checkpatch fixes, Mark Cave-Ayland, 2022/05/22
- [PATCH 20/50] pckbd: move ISAKBDState from pckbd.c to i8042.h, Mark Cave-Ayland, 2022/05/22
- [PATCH 22/50] pckbd: implement i8042_mmio_reset() for I8042_MMIO device,
Mark Cave-Ayland <=
- [PATCH 24/50] pckbd: add size qdev property to I8042_MMIO device, Mark Cave-Ayland, 2022/05/22
- [PATCH 21/50] pckbd: introduce new I8042_MMIO QOM type, Mark Cave-Ayland, 2022/05/22
- [PATCH 29/50] pckbd: more vmstate_register() from i8042_mm_init() to i8042_mmio_realize(), Mark Cave-Ayland, 2022/05/22
- [PATCH 31/50] ps2: make ps2_raise_irq() function static, Mark Cave-Ayland, 2022/05/22
- [PATCH 23/50] pckbd: add mask qdev property to I8042_MMIO device, Mark Cave-Ayland, 2022/05/22
- [PATCH 26/50] pckbd: implement i8042_mmio_init() function, Mark Cave-Ayland, 2022/05/22
- [PATCH 25/50] pckbd: implement i8042_mmio_realize() function, Mark Cave-Ayland, 2022/05/22
- [PATCH 35/50] pckbd: replace irq_kbd and irq_mouse with qemu_irq array in KBDState, Mark Cave-Ayland, 2022/05/22