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
F144014857: D54777.id170038.diff
Tue, Feb 3, 9:56 AM
Unknown Object (File)
Mon, Feb 2, 2:12 AM
Unknown Object (File)
Sat, Jan 31, 11:18 PM
Unknown Object (File)
Thu, Jan 22, 5:22 PM
Unknown Object (File)
Wed, Jan 21, 3:14 AM
Unknown Object (File)
Tue, Jan 20, 8:43 AM
Unknown Object (File)
Tue, Jan 20, 2:49 AM
Unknown Object (File)
Mon, Jan 19, 11:09 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 Skipped
Unit
Tests Skipped
Build Status
Buildable 69982
Build 66865: arc lint + arc unit

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!