Do APCIREGS->pm1.evt.en updates using the new acpi_pm1_evt_write_en function, so the acpi code will see those updates.
Signed-off-by: Gerd Hoffmann <kra...@redhat.com> --- hw/acpi.c | 5 +++++ hw/acpi.h | 1 + hw/acpi_piix4.c | 2 +- hw/vt82c686.c | 2 +- 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/hw/acpi.c b/hw/acpi.c index 1129335..407949b 100644 --- a/hw/acpi.c +++ b/hw/acpi.c @@ -268,6 +268,11 @@ void acpi_pm1_evt_write_sts(ACPIREGS *ar, uint16_t val) ar->pm1.evt.sts &= ~val; } +void acpi_pm1_evt_write_en(ACPIREGS *ar, uint16_t val) +{ + ar->pm1.evt.en = val; +} + void acpi_pm1_evt_power_down(ACPIREGS *ar) { if (ar->pm1.evt.en & ACPI_BITMASK_POWER_BUTTON_ENABLE) { diff --git a/hw/acpi.h b/hw/acpi.h index e1d5e3b..88f8051 100644 --- a/hw/acpi.h +++ b/hw/acpi.h @@ -133,6 +133,7 @@ static inline int64_t acpi_pm_tmr_get_clock(void) /* PM1a_EVT: piix and ich9 don't implement PM1b. */ uint16_t acpi_pm1_evt_get_sts(ACPIREGS *ar); void acpi_pm1_evt_write_sts(ACPIREGS *ar, uint16_t val); +void acpi_pm1_evt_write_en(ACPIREGS *ar, uint16_t val); void acpi_pm1_evt_power_down(ACPIREGS *ar); void acpi_pm1_evt_reset(ACPIREGS *ar); diff --git a/hw/acpi_piix4.c b/hw/acpi_piix4.c index b6899f4..9c72e62 100644 --- a/hw/acpi_piix4.c +++ b/hw/acpi_piix4.c @@ -117,7 +117,7 @@ static void pm_ioport_write(IORange *ioport, uint64_t addr, unsigned width, pm_update_sci(s); break; case 0x02: - s->ar.pm1.evt.en = val; + acpi_pm1_evt_write_en(&s->ar, val); pm_update_sci(s); break; case 0x04: diff --git a/hw/vt82c686.c b/hw/vt82c686.c index 10e066b..d8f4e26 100644 --- a/hw/vt82c686.c +++ b/hw/vt82c686.c @@ -206,7 +206,7 @@ static void pm_ioport_writew(void *opaque, uint32_t addr, uint32_t val) pm_update_sci(s); break; case 0x02: - s->ar.pm1.evt.en = val; + acpi_pm1_evt_write_en(&s->ar, val); pm_update_sci(s); break; case 0x04: -- 1.7.1