mirror of
https://github.com/qemu/qemu.git
synced 2026-07-08 17:46:10 +00:00
hw/arm: keep QemuInputHandlerState in musicpal
Track the input handled state, and dispose it on unrealize. Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
This commit is contained in:
@@ -1062,6 +1062,7 @@ struct musicpal_key_state {
|
||||
SysBusDevice parent_obj;
|
||||
/*< public >*/
|
||||
|
||||
QemuInputHandlerState *hs;
|
||||
uint32_t pressed_keys;
|
||||
qemu_irq out[8];
|
||||
};
|
||||
@@ -1158,7 +1159,16 @@ static const QemuInputHandler musicpal_key_handler = {
|
||||
|
||||
static void musicpal_key_realize(DeviceState *dev, Error **errp)
|
||||
{
|
||||
qemu_input_handler_register(dev, &musicpal_key_handler);
|
||||
musicpal_key_state *s = MUSICPAL_KEY(dev);
|
||||
|
||||
s->hs = qemu_input_handler_register(dev, &musicpal_key_handler);
|
||||
}
|
||||
|
||||
static void musicpal_key_unrealize(DeviceState *dev)
|
||||
{
|
||||
musicpal_key_state *s = MUSICPAL_KEY(dev);
|
||||
|
||||
g_clear_pointer(&s->hs, qemu_input_handler_unregister);
|
||||
}
|
||||
|
||||
static const VMStateDescription musicpal_key_vmsd = {
|
||||
@@ -1177,6 +1187,7 @@ static void musicpal_key_class_init(ObjectClass *klass, const void *data)
|
||||
|
||||
dc->vmsd = &musicpal_key_vmsd;
|
||||
dc->realize = musicpal_key_realize;
|
||||
dc->unrealize = musicpal_key_unrealize;
|
||||
}
|
||||
|
||||
static const TypeInfo musicpal_key_info = {
|
||||
|
||||
Reference in New Issue
Block a user