From: Boris Ostrovsky Date: Tue, 2 Jan 2018 12:29:07 +0000 (+0000) Subject: acpi: power and sleep ACPI buttons are not emulated for PVH guests X-Git-Tag: 4.8.3pre-shim-comet-2~43 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=b5419306dea20bce67cc545725c333449477b0e1;p=xen.git 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 --- 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 {