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
This commit is contained in:
Robert Horvath
2021-09-16 17:02:56 +02:00
parent 1cdbc7cbd1
commit c07743a00d

View File

@@ -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);
}
{