@@ -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 = {
Signed-off-by: liguang <lig.fnst@cn.fujitsu.com> --- hw/piix4.c | 14 ++++++++++++-- 1 files changed, 12 insertions(+), 2 deletions(-)