On Monday, October 29, 2018 6:52:16 PM CET Anchal Agarwal wrote: > Currently we do not see sleep_enable bit set after guest resumes > from hibernation. Hibernation is triggered in guest on receiving > a sleep trigger from the hypervisor(S4 state). We see that power > button is enabled on wake up from S4 state however sleep button > isn't. I'm not against this change in principle, although it may change behavior in a somewhat unexpected way on some systems. > This causes subsequent invocation of sleep state to fail > in the guest. However, can you explain this in a bit more detail? > Signed-off-by: Anchal Agarwal <anchalag@xxxxxxxxxx> > Reviewed-by: Balbir Singh <sblbir@xxxxxxxxxx> > Reviewed-by: Frank van der Linden <fllinden@xxxxxxxxxx> > --- > drivers/acpi/acpica/hwsleep.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/drivers/acpi/acpica/hwsleep.c b/drivers/acpi/acpica/hwsleep.c > index b62db8ec446f..a176c7802760 100644 > --- a/drivers/acpi/acpica/hwsleep.c > +++ b/drivers/acpi/acpica/hwsleep.c > @@ -300,6 +300,17 @@ acpi_status acpi_hw_legacy_wake(u8 sleep_state) > [ACPI_EVENT_POWER_BUTTON]. > status_register_id, ACPI_CLEAR_STATUS); > > + /* Enable sleep button */ > + (void) > + acpi_write_bit_register(acpi_gbl_fixed_event_info > + [ACPI_EVENT_SLEEP_BUTTON]. > + enable_register_id, ACPI_ENABLE_EVENT); > + > + (void) > + acpi_write_bit_register(acpi_gbl_fixed_event_info > + [ACPI_EVENT_SLEEP_BUTTON]. > + status_register_id, ACPI_CLEAR_STATUS); > + > acpi_hw_execute_sleep_method(METHOD_PATHNAME__SST, ACPI_SST_WORKING); > return_ACPI_STATUS(status); > } >