diff mbox

[RFC,10/14] piix4: refactor piix4's power callbacks

Message ID 1363161681-13878-11-git-send-email-lig.fnst@cn.fujitsu.com
State New
Headers show

Commit Message

liguang March 13, 2013, 8:01 a.m. UTC
Signed-off-by: liguang <lig.fnst@cn.fujitsu.com>
---
 hw/piix4.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)
diff mbox

Patch

diff --git a/hw/piix4.c b/hw/piix4.c
index c1cb94d..1066149 100644
--- a/hw/piix4.c
+++ b/hw/piix4.c
@@ -34,7 +34,7 @@  typedef struct PIIX4State {
     PCIDevice dev;
 } PIIX4State;
 
-static void piix4_reset(void *opaque)
+static void piix4_config_reset(void *opaque)
 {
     PIIX4State *d = opaque;
     uint8_t *pci_conf = d->dev.config;
@@ -72,6 +72,14 @@  static void piix4_reset(void *opaque)
     pci_conf[0xae] = 0x00;
 }
 
+static void piix4_dev_reset(DeviceState *dev)
+{
+    PCIDevice *d = PCI_DEVICE(dev);
+    PIIX4State *ps = DO_UPCAST(PIIX4State, dev, d);
+
+    piix4_config_reset(ps);
+}
+
 static const VMStateDescription vmstate_piix4 = {
     .name = "PIIX4",
     .version_id = 2,
@@ -89,7 +97,7 @@  static int piix4_initfn(PCIDevice *dev)
 
     isa_bus_new(&d->dev.qdev, pci_address_space_io(dev));
     piix4_dev = &d->dev;
-    qemu_register_reset(piix4_reset, d);
+
     return 0;
 }
 
@@ -115,6 +123,8 @@  static void piix4_class_init(ObjectClass *klass, void *data)
     dc->desc = "ISA bridge";
     dc->no_user = 1;
     dc->vmsd = &vmstate_piix4;
+    dc->reset = piix4_dev_reset;
+    dc->on = piix4_dev_reset;
 }
 
 static const TypeInfo piix4_info = {