From 7704e80aa10db669767b815612ad3b3af5f074ba Mon Sep 17 00:00:00 2001 From: Boris Ostrovsky Date: Fri, 2 Dec 2016 18:06:25 +0100 Subject: [PATCH] acpi: power and sleep ACPI buttons are not emulated for PVH guests Signed-off-by: Boris Ostrovsky Reviewed-by: Konrad Rzeszutek Wilk Acked-by: Jan Beulich --- tools/firmware/hvmloader/util.c | 3 ++- tools/libacpi/build.c | 2 ++ tools/libacpi/libacpi.h | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/firmware/hvmloader/util.c b/tools/firmware/hvmloader/util.c index 1d789736c8..a3f12fe21c 100644 --- a/tools/firmware/hvmloader/util.c +++ b/tools/firmware/hvmloader/util.c @@ -949,7 +949,8 @@ void hvmloader_acpi_build_tables(struct acpi_config *config, config->table_flags |= ACPI_HAS_SSDT_S4; config->table_flags |= (ACPI_HAS_TCPA | ACPI_HAS_IOAPIC | - ACPI_HAS_WAET | ACPI_HAS_PMTIMER); + ACPI_HAS_WAET | ACPI_HAS_PMTIMER | + ACPI_HAS_BUTTONS); config->tis_hdr = (uint16_t *)ACPI_TIS_HDR_ADDRESS; diff --git a/tools/libacpi/build.c b/tools/libacpi/build.c index e1fd381cb1..4a2e2a9986 100644 --- a/tools/libacpi/build.c +++ b/tools/libacpi/build.c @@ -579,6 +579,8 @@ int acpi_build_tables(struct acpi_ctxt *ctxt, struct acpi_config *config) Fadt.pm_tmr_blk = Fadt.pm_tmr_len = 0; memset(&Fadt.x_pm_tmr_blk, 0, sizeof(Fadt.x_pm_tmr_blk)); } + if ( !(config->table_flags & ACPI_HAS_BUTTONS) ) + Fadt.flags |= (ACPI_PWR_BUTTON | ACPI_SLP_BUTTON); memcpy(fadt, &Fadt, sizeof(struct acpi_20_fadt)); fadt->dsdt = ctxt->mem_ops.v2p(ctxt, dsdt); fadt->x_dsdt = ctxt->mem_ops.v2p(ctxt, dsdt); diff --git a/tools/libacpi/libacpi.h b/tools/libacpi/libacpi.h index bda692ebfa..dd6ef8b14c 100644 --- a/tools/libacpi/libacpi.h +++ b/tools/libacpi/libacpi.h @@ -31,6 +31,7 @@ #define ACPI_HAS_IOAPIC (1<<8) #define ACPI_HAS_WAET (1<<9) #define ACPI_HAS_PMTIMER (1<<10) +#define ACPI_HAS_BUTTONS (1<<11) struct xen_vmemrange; struct acpi_numa { -- 2.30.2