Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c07743a0 authored by Robert Horvath's avatar Robert Horvath
Browse files

Pass Binder token to ISuspendControlServiceInternal#enableAutosuspend

The Binder token signals system_server's death to the suspend HAL,
so that autosuspend is disabled in case the framework stops or crashes
and cannot hold suspend blockers anymore.

Bug: 193776617
Test: atest SystemSuspendV1_0UnitTest SystemSuspendV1_0AidlTest
Test: Put device to sleep, observe "automatic system suspend enabled".
      On `adb shell stop`, observe "automatic system suspend disabled".
Change-Id: I918e7d2180eb47f078ef57732ae0e2dcd5e1f2c3
Merged-In: I918e7d2180eb47f078ef57732ae0e2dcd5e1f2c3
parent 1cdbc7cb
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -397,9 +397,10 @@ sp<system::suspend::internal::ISuspendControlServiceInternal> getSuspendControlI
void enableAutoSuspend() {
    static bool enabled = false;
    if (!enabled) {
        static sp<IBinder> autosuspendClientToken = new BBinder();
        sp<system::suspend::internal::ISuspendControlServiceInternal> suspendControl =
                getSuspendControlInternal();
        suspendControl->enableAutosuspend(&enabled);
        suspendControl->enableAutosuspend(autosuspendClientToken, &enabled);
    }

    {