Page MenuHomeFreeBSD

acpi: Fix not calling AcpiLeaveSleepState() in S3 path
ClosedPublic

Authored by obiwac on Mon, Jan 19, 1:30 PM.
Tags
None
Referenced Files
F142569797: D54777.id170055.diff
Wed, Jan 21, 3:14 AM
F142486099: D54777.id170055.diff
Tue, Jan 20, 8:43 AM
Unknown Object (File)
Tue, Jan 20, 2:49 AM
Unknown Object (File)
Mon, Jan 19, 11:09 PM
Unknown Object (File)
Mon, Jan 19, 7:17 PM
Unknown Object (File)
Mon, Jan 19, 6:39 PM
Unknown Object (File)
Mon, Jan 19, 5:08 PM
Unknown Object (File)
Mon, Jan 19, 5:02 PM
Subscribers

Details

Summary

When resuming from ACPI suspend, the ACPI_SS_SLP_PREP bit in slp_state
was being checked and subsequently unset when calling resumeclock().
This bit was also being checked for the AcpiLeaveSleepState() call in
the non-s2idle path, but having just been unset, it was never actually
being called.

Change this so that resumeclock() is always being called (since we never
goto breakout between suspendclock() and resumeclock() anyway) and
ACPI_SS_SLP_PREP is purely used for AcpiEnterSleepStatePrep() and
AcpiLeaveSleepState() in the non-s2idle paths.

PR: 292568
Reported by: Marek Zarychta <zarychtam@plan-b.pwste.edu.pl>
Fixes: 7669cbd0f064 (“acpi: Suspend-to-idle support (s2idle)”)
Sponsored by: The FreeBSD Foundation

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Ah, sorry... I'm pretty sure I had seen that problem during the review of D48734 at some point but forgot about it...

This revision is now accepted and ready to land.Mon, Jan 19, 4:04 PM

Macro shipit:

It resolves the issue reported in PR 292568. Thank you for the fix!