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