[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH][RFC 11/14] pckbd: refactor pckbd's power callbacks
From: |
liguang |
Subject: |
[Qemu-devel] [PATCH][RFC 11/14] pckbd: refactor pckbd's power callbacks |
Date: |
Wed, 13 Mar 2013 16:01:18 +0800 |
Signed-off-by: liguang <address@hidden>
---
hw/pckbd.c | 22 ++++++++++++----------
1 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/hw/pckbd.c b/hw/pckbd.c
index 3bad09b..1ab8ada 100644
--- a/hw/pckbd.c
+++ b/hw/pckbd.c
@@ -142,6 +142,12 @@ typedef struct KBDState {
hwaddr mask;
} KBDState;
+typedef struct ISAKBDState {
+ ISADevice dev;
+ KBDState kbd;
+ MemoryRegion io[2];
+} ISAKBDState;
+
/* update irq and KBD_STAT_[MOUSE_]OBF */
/* XXX: not generating the irqs if KBD_MODE_DISABLE_KBD is set may be
incorrect, but it avoids having to simulate exact delays */
@@ -360,9 +366,10 @@ static void kbd_write_data(void *opaque, hwaddr addr,
s->write_cmd = 0;
}
-static void kbd_reset(void *opaque)
+static void kbd_reset(DeviceState *dev)
{
- KBDState *s = opaque;
+ ISADevice *isadev = ISA_DEVICE(dev);
+ KBDState *s = &(DO_UPCAST(ISAKBDState, dev, isadev)->kbd);
s->mode = KBD_MODE_KBD_INT | KBD_MODE_MOUSE_INT;
s->status = KBD_STAT_CMD | KBD_STAT_UNLOCKED;
@@ -428,15 +435,8 @@ void i8042_mm_init(qemu_irq kbd_irq, qemu_irq mouse_irq,
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);
}
-typedef struct ISAKBDState {
- ISADevice dev;
- KBDState kbd;
- MemoryRegion io[2];
-} ISAKBDState;
-
void i8042_isa_mouse_fake_event(void *opaque)
{
ISADevice *dev = opaque;
@@ -499,7 +499,7 @@ static int i8042_initfn(ISADevice *dev)
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);
+
return 0;
}
@@ -510,6 +510,8 @@ static void i8042_class_initfn(ObjectClass *klass, void
*data)
ic->init = i8042_initfn;
dc->no_user = 1;
dc->vmsd = &vmstate_kbd_isa;
+ dc->reset = kbd_reset;
+ dc->on = kbd_reset;
}
static const TypeInfo i8042_info = {
--
1.7.2.5
- Re: [Qemu-devel] [PATCH][RFC 02/14] qdev: add power management method, (continued)
- [Qemu-devel] [PATCH][RFC 07/14] acpi: refactor acpi wakeup function, liguang, 2013/03/13
- [Qemu-devel] [PATCH][RFC 09/14] ich9: do lpc's power on by reset function, liguang, 2013/03/13
- [Qemu-devel] [PATCH][RFC 01/14] gitignore: ignore more files, liguang, 2013/03/13
- [Qemu-devel] [PATCH][RFC 06/14] sysemu: remove PowerReason in sysemu.h, liguang, 2013/03/13
- [Qemu-devel] [PATCH][RFC 10/14] piix4: refactor piix4's power callbacks, liguang, 2013/03/13
- [Qemu-devel] [PATCH][RFC 12/14] ps2: call ps2_{kbd, mouse}_reset in kbd_reset, liguang, 2013/03/13
- [Qemu-devel] [PATCH][RFC 08/14] ich9: make lpc's reset also do pm_reset, liguang, 2013/03/13
- [Qemu-devel] [PATCH][RFC 14/14] uhci: refactor uhci's power callbacks, liguang, 2013/03/13
- [Qemu-devel] [PATCH][RFC 13/14] parallel: refactor parallel_reset function, liguang, 2013/03/13
- [Qemu-devel] [PATCH][RFC 11/14] pckbd: refactor pckbd's power callbacks,
liguang <=
- Re: [Qemu-devel] [PATCH][RFC 0/14] implement power chip, li guang, 2013/03/14
- Re: [Qemu-devel] [PATCH][RFC 0/14] implement power chip, Andreas Färber, 2013/03/18
- Re: [Qemu-devel] [PATCH][RFC 0/14] implement power chip, Peter Maydell, 2013/03/18