diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c index 5c7dfb2c69..5e8f8a7eaf 100644 --- a/hw/acpi/ich9.c +++ b/hw/acpi/ich9.c @@ -388,9 +388,8 @@ static void ich9_pm_set_keep_pci_slot_hpc(Object *obj, bool value, Error **errp) s->pm.keep_pci_slot_hpc = value; } -void ich9_pm_add_properties(Object *obj, ICH9LPCPMRegs *pm) +void ich9_pm_reset_properties(ICH9LPCPMRegs *pm) { - static const uint32_t gpe0_len = ICH9_PMIO_GPE0_LEN; pm->acpi_memory_hotplug.is_enabled = true; pm->disable_s3 = 0; pm->disable_s4 = 0; @@ -398,6 +397,11 @@ void ich9_pm_add_properties(Object *obj, ICH9LPCPMRegs *pm) pm->acpi_pci_hotplug.use_acpi_hotplug_bridge = true; pm->keep_pci_slot_hpc = true; pm->enable_tco = true; +} + +void ich9_pm_add_properties(Object *obj, ICH9LPCPMRegs *pm) +{ + static const uint32_t gpe0_len = ICH9_PMIO_GPE0_LEN; object_property_add_uint32_ptr(obj, ACPI_PM_PROP_PM_IO_BASE, &pm->pm_io_base, OBJ_PROP_FLAG_READ); diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c index 9cec18a378..edf9783ec8 100644 --- a/hw/isa/lpc_ich9.c +++ b/hw/isa/lpc_ich9.c @@ -701,6 +701,7 @@ static void ich9_lpc_initfn(Object *obj) &lpc->smi_negotiated_features, OBJ_PROP_FLAG_READ); + ich9_pm_reset_properties(&lpc->pm); ich9_pm_add_properties(obj, &lpc->pm); } diff --git a/include/hw/acpi/ich9.h b/include/hw/acpi/ich9.h index 019f0915c1..30990fcef5 100644 --- a/include/hw/acpi/ich9.h +++ b/include/hw/acpi/ich9.h @@ -81,6 +81,8 @@ void ich9_pm_init(PCIDevice *lpc_pci, ICH9LPCPMRegs *pm, qemu_irq sci_irq); void ich9_pm_iospace_update(ICH9LPCPMRegs *pm, uint32_t pm_io_base); extern const VMStateDescription vmstate_ich9_pm; +void ich9_pm_reset_properties(ICH9LPCPMRegs *pm); + void ich9_pm_add_properties(Object *obj, ICH9LPCPMRegs *pm); void ich9_pm_device_pre_plug_cb(HotplugHandler *hotplug_dev, DeviceState *dev,