qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH][RFC 12/14] ps2: call ps2_{kbd, mouse}_reset in kbd_


From: liguang
Subject: [Qemu-devel] [PATCH][RFC 12/14] ps2: call ps2_{kbd, mouse}_reset in kbd_reset
Date: Wed, 13 Mar 2013 16:01:19 +0800

Signed-off-by: liguang <address@hidden>
---
 hw/pckbd.c |    3 +++
 hw/ps2.c   |    8 ++++----
 hw/ps2.h   |    2 ++
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/hw/pckbd.c b/hw/pckbd.c
index 1ab8ada..f2570d8 100644
--- a/hw/pckbd.c
+++ b/hw/pckbd.c
@@ -374,6 +374,9 @@ static void kbd_reset(DeviceState *dev)
     s->mode = KBD_MODE_KBD_INT | KBD_MODE_MOUSE_INT;
     s->status = KBD_STAT_CMD | KBD_STAT_UNLOCKED;
     s->outport = KBD_OUT_RESET | KBD_OUT_A20;
+
+    ps2_kbd_reset(s->kbd);
+    ps2_mouse_reset(s->mouse);
 }
 
 static const VMStateDescription vmstate_kbd = {
diff --git a/hw/ps2.c b/hw/ps2.c
index 15cfd5b..36d431e 100644
--- a/hw/ps2.c
+++ b/hw/ps2.c
@@ -528,7 +528,7 @@ static void ps2_common_reset(PS2State *s)
     s->update_irq(s->update_arg, 0);
 }
 
-static void ps2_kbd_reset(void *opaque)
+void ps2_kbd_reset(void *opaque)
 {
     PS2KbdState *s = (PS2KbdState *) opaque;
 
@@ -538,7 +538,7 @@ static void ps2_kbd_reset(void *opaque)
     s->scancode_set = 0;
 }
 
-static void ps2_mouse_reset(void *opaque)
+void ps2_mouse_reset(void *opaque)
 {
     PS2MouseState *s = (PS2MouseState *) opaque;
 
@@ -659,7 +659,7 @@ void *ps2_kbd_init(void (*update_irq)(void *, int), void 
*update_arg)
     s->scancode_set = 2;
     vmstate_register(NULL, 0, &vmstate_ps2_keyboard, s);
     qemu_add_kbd_event_handler(ps2_put_keycode, s);
-    qemu_register_reset(ps2_kbd_reset, s);
+
     return s;
 }
 
@@ -671,6 +671,6 @@ void *ps2_mouse_init(void (*update_irq)(void *, int), void 
*update_arg)
     s->common.update_arg = update_arg;
     vmstate_register(NULL, 0, &vmstate_ps2_mouse, s);
     qemu_add_mouse_event_handler(ps2_mouse_event, s, 0, "QEMU PS/2 Mouse");
-    qemu_register_reset(ps2_mouse_reset, s);
+
     return s;
 }
diff --git a/hw/ps2.h b/hw/ps2.h
index 7c45ce7..3e65d47 100644
--- a/hw/ps2.h
+++ b/hw/ps2.h
@@ -34,5 +34,7 @@ uint32_t ps2_read_data(void *);
 void ps2_queue(void *, int b);
 void ps2_keyboard_set_translation(void *opaque, int mode);
 void ps2_mouse_fake_event(void *opaque);
+void ps2_kbd_reset(void *opaque);
+void ps2_mouse_reset(void *opaque);
 
 #endif /* !HW_PS2_H */
-- 
1.7.2.5




reply via email to

[Prev in Thread] Current Thread [Next in Thread]