系统休眠唤醒的时候会涉及到亮灭屏,下面分析下系统(高通8155平台)Display亮灭屏流程
1. 点亮屏幕
点亮屏幕入口在framework/base/下面LightsService.java,然后通过调用SurfaceControl.java ,最终调用到framework/native下面的SurfaceFlinger.cpp,SurfaceFlinger与hal层通信都是通过ComposerHal.cpp。hwc_session_services.cpp是在hardware/qcom/display/sdm/下面,在hw_peripheral_drm.cpp中调用Sys::pwrite_写参数到驱动。
2. 休眠灭屏
灭屏是LocalDisplayAdapter.java中调用 SurfaceControl.java,后面也是通过SurfaceFlinger.cpp与HAL层通信。HAL层会调用到hwc_session_services.cpp,后面通过display_base.cpp调用到drm中:hw_device_drm.cpp,drm会调用到vendor/qcom/proprietary/display/sde-drm中的drm_atomic_req.cpp后面通过Perform来与drm驱动通信。xf86drmMode.c和xf86drm.c是external/libdrm中的类。
adb 启动的display是1,对应的是hardware日志中的display 2.
adb shell am start -n com.gwm.app.map/.activity.MapMainActivity --display 1
display 2,对应仪表的是调用到hw_tv_drm.cpp这个类里面的PowerOff
3.setDisplayState流程分析
上图中在DisplayPowerController里面的initialize中初始化动画,在DisplayPowerController的animateScreenStateChange接口中调用动画的start()方法,动画执行过程中一直设置setColorFadeLevel(见DisplayPowerState中的COLOR_FADE_LEVEL),在值为0时,DisplayPowerState中的接口setState里面的stateChanged和backlightChanged发生改变,之后会调用mLock.notifyAll();然后线程run函数继续执行,调用 mBlanker.requestDisplayState(state, brightnessState);设置DisplayPowerState: setScreenState: state=1这个1表示mScreenState设置为了OFF,停掉部分流程调用。真正调用reallyGoToSleepNoUpdateLocked接口的不是goToSleepNoUpdateLocked忠,而是调用有这个日志WAKEFULNESS_DOZING isDreaming:false表示退出屏保才调用的
flags为0,所以进不去。
真正调用的是:
在handleSandman中,isDreaming为false后执行。
4.添加日志的patch:
From 2be617566be1b2d9ee3704c078c685d1a30d2664 Mon Sep 17 00:00:00 2001
From: zhoujinyan <zhoujinyan@noboauto.com>
Date: Fri, 15 Sep 2023 17:29:33 +0800
Subject: [PATCH] =?UTF-8?q?[V35CUX25-775]:=E6=9E=B6=E6=9E=84=E8=A6=81?=
=?UTF-8?q?=E6=B1=82=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97=E8=BF=BD=E8=B8=AA?=
=?UTF-8?q?Surfaceflinger=E6=B2=A1=E6=9C=89=E8=AE=BE=E7=BD=AE=E7=81=AD?=
=?UTF-8?q?=E5=B1=8F=E6=97=A5=E5=BF=97=E8=AE=B0=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
[MODULE]:frameworks/base
[REASON]:其它
[SOLUTION]:架构要求添加日志追踪Surfaceflinger没有设置灭屏日志记录
[IMPACT]:none
[TEST RECOMMENDATIONS]:none
[SOURCE]:none
Change-Id: Iabad198ab910043b7c42c08bd338aa72c219e441
---
.../server/display/DisplayManagerService.java | 1 +
.../display/DisplayPowerController.java | 26 ++++++++++++++++++-
.../server/display/LocalDisplayAdapter.java | 2 +-
.../server/power/PowerManagerService.java | 12 ++++++---
4 files changed, 36 insertions(+), 5 deletions(-)
mode change 100644 => 100755 services/core/java/com/android/server/display/DisplayManagerService.java
mode change 100644 => 100755 services/core/java/com/android/server/display/DisplayPowerController.java
mode change 100644 => 100755 services/core/java/com/android/server/display/LocalDisplayAdapter.java
mode change 100644 => 100755 services/core/java/com/android/server/power/PowerManagerService.java
diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java
old mode 100644
new mode 100755
index 713f9c8f173..434d7217b33
--- a/services/core/java/com/android/server/display/DisplayManagerService.java
+++ b/services/core/java/com/android/server/display/DisplayManagerService.java
@@ -2562,6 +2562,7 @@ public final class DisplayManagerService extends SystemService {
@Override
public boolean requestPowerState(DisplayPowerRequest request,
boolean waitForNegativeProximity) {
+ Slog.d(TAG, "requestPowerState");
synchronized (mSyncRoot) {
return mDisplayPowerController.requestPowerState(request, waitForNegativeProximity);
}
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
old mode 100644
new mode 100755
index 7c0f4197363..0d90e70f16f
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -94,7 +94,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
private static final String SCREEN_ON_BLOCKED_TRACE_NAME = "Screen on blocked";
private static final String SCREEN_OFF_BLOCKED_TRACE_NAME = "Screen off blocked";
- private static final boolean DEBUG = false;
+ private static final boolean DEBUG = true;
private static final boolean DEBUG_PRETEND_PROXIMITY_SENSOR_ABSENT = false;
// If true, uses the color fade on animation.
@@ -649,6 +649,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
if (changed) {
mDisplayReadyLocked = false;
}
+ Slog.d(TAG, "requestPowerState changed:"+changed+",mPendingRequestChangedLocked:"+mPendingRequestChangedLocked);
if (changed && !mPendingRequestChangedLocked) {
mPendingRequestChangedLocked = true;
@@ -673,6 +674,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
}
private void sendUpdatePowerStateLocked() {
+ Slog.d(TAG, "sendUpdatePowerStateLocked mPendingUpdatePowerStateLocked:"+mPendingUpdatePowerStateLocked);
if (!mPendingUpdatePowerStateLocked) {
mPendingUpdatePowerStateLocked = true;
Message msg = mHandler.obtainMessage(MSG_UPDATE_POWER_STATE);
@@ -751,6 +753,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
};
private void updatePowerState() {
+ Slog.d(TAG, "updatePowerState");
// Update the power state request.
final boolean mustNotify;
final int previousPolicy;
@@ -874,6 +877,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
// The transition may be deferred, so after this point we will use the
// actual state instead of the desired one.
final int oldState = mPowerState.getScreenState();
+ Slog.d(TAG, "updatePowerState oldState:"+oldState);
animateScreenStateChange(state, performScreenOffTransition);
state = mPowerState.getScreenState();
@@ -1246,6 +1250,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
}
private void blockScreenOff() {
+ Slog.d(TAG, "blockScreenOff");
if (mPendingScreenOffUnblocker == null) {
Trace.asyncTraceBegin(Trace.TRACE_TAG_POWER, SCREEN_OFF_BLOCKED_TRACE_NAME, 0);
mPendingScreenOffUnblocker = new ScreenOffUnblocker();
@@ -1269,13 +1274,16 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
private boolean setScreenState(int state, boolean reportOnly) {
final boolean isOff = (state == Display.STATE_OFF);
+ Slog.d(TAG, "setScreenState state:"+state+",reportOnly:"+reportOnly+",isOff:"+isOff);
if (mPowerState.getScreenState() != state) {
// If we are trying to turn screen off, give policy a chance to do something before we
// actually turn the screen off.
+ Slog.d(TAG, "setScreenState mScreenOffBecauseOfProximity:"+mScreenOffBecauseOfProximity+",mReportedScreenStateToPolicy:"+mReportedScreenStateToPolicy);
if (isOff && !mScreenOffBecauseOfProximity) {
if (mReportedScreenStateToPolicy == REPORTED_TO_POLICY_SCREEN_ON) {
setReportedScreenState(REPORTED_TO_POLICY_SCREEN_TURNING_OFF);
+ Slog.d(TAG, "screenTurningOff");
blockScreenOff();
mWindowManagerPolicy.screenTurningOff(mPendingScreenOffUnblocker);
unblockScreenOff();
@@ -1289,6 +1297,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
Trace.traceCounter(Trace.TRACE_TAG_POWER, "ScreenState", state);
// TODO(b/153319140) remove when we can get this from the above trace invocation
SystemProperties.set("debug.tracing.screen_state", String.valueOf(state));
+ Slog.d(TAG, "setScreenState state:"+state);
mPowerState.setScreenState(state);
// Tell battery stats about the transition.
try {
@@ -1379,6 +1388,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
}
private void animateScreenStateChange(int target, boolean performScreenOffTransition) {
+ Slog.d(TAG, "animateScreenStateChange target:"+target+",performScreenOffTransition:"+performScreenOffTransition);
// If there is already an animation in progress, don't interfere with it.
if (mColorFadeEnabled &&
(mColorFadeOnAnimator.isStarted() || mColorFadeOffAnimator.isStarted())) {
@@ -1404,6 +1414,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
// display has turned off so it can prepare the appropriate power on animation, but we
// don't want to actually transition to the fully off state since that takes
// significantly longer to transition from.
+ Slog.d(TAG, "animateScreenStateChange setScreenState1");
setScreenState(Display.STATE_OFF, target != Display.STATE_OFF /*reportOnly*/);
}
@@ -1411,6 +1422,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
// finish. Then finish up now to prevent a jarring transition back
// to screen on if we skipped blocking screen on as usual.
if (mPendingScreenOff && target != Display.STATE_OFF) {
+ Slog.d(TAG, "animateScreenStateChange setScreenState2");
setScreenState(Display.STATE_OFF);
mPendingScreenOff = false;
mPowerState.dismissColorFadeResources();
@@ -1420,6 +1432,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
// Want screen on. The contents of the screen may not yet
// be visible if the color fade has not been dismissed because
// its last frame of animation is solid black.
+ Slog.d(TAG, "animateScreenStateChange setScreenState3");
if (!setScreenState(Display.STATE_ON)) {
return; // screen on blocked
}
@@ -1448,6 +1461,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
&& mPowerState.getScreenState() == Display.STATE_ON) {
return;
}
+ Slog.d(TAG, "animateScreenStateChange setScreenState4");
// Set screen state.
if (!setScreenState(Display.STATE_VR)) {
@@ -1458,6 +1472,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
mPowerState.setColorFadeLevel(1.0f);
mPowerState.dismissColorFade();
} else if (target == Display.STATE_DOZE) {
+ Slog.d(TAG, "animateScreenStateChange target is STATE_DOZE");
// Want screen dozing.
// Wait for brightness animation to complete beforehand when entering doze
// from screen on to prevent a perceptible jump because brightness may operate
@@ -1466,6 +1481,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
&& mPowerState.getScreenState() == Display.STATE_ON) {
return;
}
+ Slog.d(TAG, "animateScreenStateChange setScreenState5");
// Set screen state.
if (!setScreenState(Display.STATE_DOZE)) {
@@ -1479,6 +1495,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
// Want screen dozing and suspended.
// Wait for brightness animation to complete beforehand unless already
// suspended because we may not be able to change it after suspension.
+ Slog.d(TAG, "animateScreenStateChange target is STATE_DOZE_SUSPEND");
if (mScreenBrightnessRampAnimator.isAnimating()
&& mPowerState.getScreenState() != Display.STATE_DOZE_SUSPEND) {
return;
@@ -1486,7 +1503,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
// If not already suspending, temporarily set the state to doze until the
// screen on is unblocked, then suspend.
+ Slog.d(TAG, "animateScreenStateChange getScreenState is not STATE_DOZE_SUSPEND");
if (mPowerState.getScreenState() != Display.STATE_DOZE_SUSPEND) {
+ Slog.d(TAG, "animateScreenStateChange setScreenState6");
if (!setScreenState(Display.STATE_DOZE)) {
return; // screen on blocked
}
@@ -1497,6 +1516,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
mPowerState.setColorFadeLevel(1.0f);
mPowerState.dismissColorFade();
} else if (target == Display.STATE_ON_SUSPEND) {
+ Slog.d(TAG, "animateScreenStateChange target is STATE_ON_SUSPEND");
// Want screen full-power and suspended.
// Wait for brightness animation to complete beforehand unless already
// suspended because we may not be able to change it after suspension.
@@ -1507,7 +1527,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
// If not already suspending, temporarily set the state to on until the
// screen on is unblocked, then suspend.
+ Slog.d(TAG, "animateScreenStateChange getScreenState is not STATE_ON_SUSPEND");
if (mPowerState.getScreenState() != Display.STATE_ON_SUSPEND) {
+ Slog.d(TAG, "animateScreenStateChange setScreenState7");
if (!setScreenState(Display.STATE_ON)) {
return;
}
@@ -1523,10 +1545,12 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
if (!mColorFadeEnabled) {
mPowerState.setColorFadeLevel(0.0f);
}
+ Slog.d(TAG, "animateScreenStateChange getColorFadeLevel:"+mPowerState.getColorFadeLevel());
if (mPowerState.getColorFadeLevel() == 0.0f) {
// Turn the screen off.
// A black surface is already hiding the contents of the screen.
+ Slog.d(TAG, "animateScreenStateChange setScreenState8");
setScreenState(Display.STATE_OFF);
mPendingScreenOff = false;
mPowerState.dismissColorFadeResources();
diff --git a/services/core/java/com/android/server/display/LocalDisplayAdapter.java b/services/core/java/com/android/server/display/LocalDisplayAdapter.java
old mode 100644
new mode 100755
index 2c08420af42..06f35b5928f
--- a/services/core/java/com/android/server/display/LocalDisplayAdapter.java
+++ b/services/core/java/com/android/server/display/LocalDisplayAdapter.java
@@ -59,7 +59,7 @@ import java.util.Objects;
*/
final class LocalDisplayAdapter extends DisplayAdapter {
private static final String TAG = "LocalDisplayAdapter";
- private static final boolean DEBUG = false;
+ private static final boolean DEBUG = true;
private static final String UNIQUE_ID_PREFIX = "local:";
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
old mode 100644
new mode 100755
index dee604a3a5d..26920f20916
--- a/services/core/java/com/android/server/power/PowerManagerService.java
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
@@ -127,7 +127,7 @@ public final class PowerManagerService extends SystemService
implements Watchdog.Monitor {
private static final String TAG = "PowerManagerService";
- private static final boolean DEBUG = false;
+ private static final boolean DEBUG = true;
private static final boolean DEBUG_SPEW = DEBUG && true;
// Message: Sent when a user activity timeout occurs to update the power state.
@@ -1818,9 +1818,10 @@ public final class PowerManagerService extends SystemService
Slog.d(TAG, "reallyGoToSleepNoUpdateLocked: eventTime=" + eventTime
+ ", uid=" + uid);
}
-
+ Slog.i(TAG, "reallyGoToSleepNoUpdateLocked eventTime:"+eventTime+",mLastWakeTime:"+mLastWakeTime+",mBootCompleted:"+mBootCompleted+",mSystemReady:"+mSystemReady);
if (eventTime < mLastWakeTime || getWakefulnessLocked() == WAKEFULNESS_ASLEEP
|| !mBootCompleted || !mSystemReady) {
+ Slog.d(TAG, "reallyGoToSleepNoUpdateLocked return false");
return false;
}
@@ -1907,6 +1908,7 @@ public final class PowerManagerService extends SystemService
* way each time. The point is to gather all of the transition logic here.
*/
private void updatePowerStateLocked() {
+ Slog.d(TAG, "updatePowerStateLocked mSystemReady:"+mSystemReady+",mDirty:"+mDirty);
if (!mSystemReady || mDirty == 0) {
return;
}
@@ -1943,6 +1945,7 @@ public final class PowerManagerService extends SystemService
updateProfilesLocked(now);
// Phase 3: Update display power state.
+ Slog.d(TAG, "updatePowerStateLocked updateDisplayPowerStateLocked dirtyPhase2:"+dirtyPhase2);
final boolean displayBecameReady = updateDisplayPowerStateLocked(dirtyPhase2);
// Phase 4: Update dream state (depends on display ready signal).
@@ -2738,6 +2741,7 @@ public final class PowerManagerService extends SystemService
return; // continue dreaming
}
}
+ Slog.i(TAG, "WAKEFULNESS_DREAMING...");
// Dream has ended or will be stopped. Update the power state.
if (isItBedTimeYetLocked()) {
@@ -2756,6 +2760,7 @@ public final class PowerManagerService extends SystemService
updatePowerStateLocked();
}
} else if (wakefulness == WAKEFULNESS_DOZING) {
+ Slog.i(TAG, "WAKEFULNESS_DOZING isDreaming:"+isDreaming);
if (isDreaming) {
return; // continue dozing
}
@@ -2876,7 +2881,7 @@ public final class PowerManagerService extends SystemService
mDisplayPowerRequest.dozeScreenBrightness =
PowerManager.BRIGHTNESS_INVALID_FLOAT;
}
-
+ Slog.d(TAG, "updateDisplayPowerStateLocked mRequestWaitForNegativeProximity:"+mRequestWaitForNegativeProximity);
mDisplayReady = mDisplayManagerInternal.requestPowerState(mDisplayPowerRequest,
mRequestWaitForNegativeProximity);
mRequestWaitForNegativeProximity = false;
@@ -2895,6 +2900,7 @@ public final class PowerManagerService extends SystemService
+ ", sQuiescent=" + sQuiescent);
}
}
+ Slog.d(TAG, "updateDisplayPowerStateLocked mDisplayReady:"+mDisplayReady+",oldDisplayReady:"+oldDisplayReady);
return mDisplayReady && !oldDisplayReady;
}
--
2.28.0
另外添加的日志:
zhoujinyan@QNXAnd-Srv07:~/ES15_STR_PBASE1/android/frameworks/base/services$ git diff .
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
index 0d90e70f16f..ecd9ed0ee9a 100755
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -65,7 +65,7 @@ import com.android.server.policy.WindowManagerPolicy;
import java.io.PrintWriter;
import java.util.List;
-
+import android.util.Log;
/**
* Controls the power state of the display.
*
@@ -652,6 +652,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
Slog.d(TAG, "requestPowerState changed:"+changed+",mPendingRequestChangedLocked:"+mPendingRequestChangedLocked);
if (changed && !mPendingRequestChangedLocked) {
+ Slog.d(TAG, "to run sendUpdatePowerStateLocked");
mPendingRequestChangedLocked = true;
sendUpdatePowerStateLocked();
}
@@ -674,6 +675,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
}
private void sendUpdatePowerStateLocked() {
+ Log.d(TAG,"sendUpdatePowerStateLocked throw:"+Log.getStackTraceString(new Throwable()));
Slog.d(TAG, "sendUpdatePowerStateLocked mPendingUpdatePowerStateLocked:"+mPendingUpdatePowerStateLocked);
if (!mPendingUpdatePowerStateLocked) {
mPendingUpdatePowerStateLocked = true;
@@ -753,6 +755,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
};
private void updatePowerState() {
+ Log.d(TAG,"updatePowerState throw:"+Log.getStackTraceString(new Throwable()));
Slog.d(TAG, "updatePowerState");
// Update the power state request.
final boolean mustNotify;
diff --git a/services/core/java/com/android/server/display/DisplayPowerState.java b/services/core/java/com/android/server/display/DisplayPowerState.java
index 4b6430d5197..e60e2b3474b 100644
--- a/services/core/java/com/android/server/display/DisplayPowerState.java
+++ b/services/core/java/com/android/server/display/DisplayPowerState.java
@@ -50,7 +50,7 @@ import java.io.PrintWriter;
final class DisplayPowerState {
private static final String TAG = "DisplayPowerState";
- private static boolean DEBUG = false;
+ private static boolean DEBUG = true;
private static String COUNTER_COLOR_FADE = "ColorFadeLevel";
private final Handler mHandler;
diff --git a/services/core/java/com/android/server/display/LocalDisplayAdapter.java b/services/core/java/com/android/server/display/LocalDisplayAdapter.java
index 06f35b5928f..34ce15ae278 100755
--- a/services/core/java/com/android/server/display/LocalDisplayAdapter.java
+++ b/services/core/java/com/android/server/display/LocalDisplayAdapter.java
@@ -50,7 +50,7 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
-
+import android.util.Log;
/**
* A display adapter for the local displays managed by SurfaceFlinger.
* <p>
@@ -665,6 +665,7 @@ final class LocalDisplayAdapter extends DisplayAdapter {
}
private void setDisplayState(int state) {
+ Log.d(TAG,"setDisplayState throw:"+Log.getStackTraceString(new Throwable()));
if (DEBUG) {
Slog.d(TAG, "setDisplayState("
+ "id=" + physicalDisplayId
(END)
5.休眠逻辑日志:
82405: 01-01 00:45:07.283 1909 2119 D CAR.POWER: setDisplayState false
82407: 01-01 00:45:07.283 1110 2016 D PowerManagerService: acquireWakeLockInternal: lock=4447758, flags=0x1, tag="CAR.POWER", ws=null, uid=1000, pid=1909
82408: 01-01 00:45:07.285 1110 2016 D PowerManagerService: updatePowerStateLocked mSystemReady:true,mDirty:1
82410: 01-01 00:45:07.285 1110 2016 D PowerManagerService: updateWakeLockSummaryLocked: mWakefulness=Awake, mWakeLockSummary=0x25
82411: 01-01 00:45:07.285 1110 2016 D PowerManagerService: updateUserActivitySummaryLocked: mWakefulness=Awake, mUserActivitySummary=0x1, nextTimeout=2147526907 (in 2147369941 ms)
82412: 01-01 00:45:07.285 1110 2016 D PowerManagerService: updatePowerStateLocked updateDisplayPowerStateLocked dirtyPhase2:1
82413: 01-01 00:45:07.285 1110 2016 D PowerManagerService: updateDisplayPowerStateLocked mRequestWaitForNegativeProximity:false
82414: 01-01 00:45:07.285 1110 2016 D DisplayManagerService: requestPowerState
82415: 01-01 00:45:07.285 1110 2016 D DisplayPowerController: requestPowerState: policy=BRIGHT, useProximitySensor=false, screenBrightnessOverride=NaN, useAutoBrightness=false, screenAutoBrightnessAdjustmentOverride=NaN, screenLowPowerBrightnessFactor=1.0, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=NaN, dozeScreenState=UNKNOWN, waitForNegativeProximity=false
82416: 01-01 00:45:07.285 1110 2016 D DisplayPowerController: requestPowerState changed:false,mPendingRequestChangedLocked:false
82417: 01-01 00:45:07.285 1110 2016 D PowerManagerService: updateDisplayPowerStateLocked: mDisplayReady=true, policy=3, mWakefulness=1, mWakeLockSummary=0x25, mUserActivitySummary=0x1, mBootCompleted=true, screenBrightnessOverride=NaN, useAutoBrightness=false, mScreenBrightnessBoostInProgress=false, mIsVrModeEnabled= false, sQuiescent=false
82418: 01-01 00:45:07.285 1110 2016 D PowerManagerService: updateDisplayPowerStateLocked mDisplayReady:true,oldDisplayReady:true
82419: 01-01 00:45:07.287 1110 2016 D PowerManagerService: releaseWakeLockInternal: lock=167243542 [CAR.POWER], flags=0x0
82420: 01-01 00:45:07.288 1110 2016 D PowerManagerService: updatePowerStateLocked mSystemReady:true,mDirty:1
82421: 01-01 00:45:07.288 1110 2016 D PowerManagerService: updateWakeLockSummaryLocked: mWakefulness=Awake, mWakeLockSummary=0x1
82422: 01-01 00:45:07.288 1110 2016 D PowerManagerService: updateUserActivitySummaryLocked: mWakefulness=Awake, mUserActivitySummary=0x1, nextTimeout=2147526907 (in 2147369938 ms)
82423: 01-01 00:45:07.288 1110 2016 D PowerManagerService: updatePowerStateLocked updateDisplayPowerStateLocked dirtyPhase2:1
82424: 01-01 00:45:07.288 1110 2016 D PowerManagerService: updateDisplayPowerStateLocked mRequestWaitForNegativeProximity:false
82425: 01-01 00:45:07.288 1110 2016 D DisplayManagerService: requestPowerState
82426: 01-01 00:45:07.288 1110 2016 D DisplayPowerController: requestPowerState: policy=BRIGHT, useProximitySensor=false, screenBrightnessOverride=NaN, useAutoBrightness=false, screenAutoBrightnessAdjustmentOverride=NaN, screenLowPowerBrightnessFactor=1.0, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=NaN, dozeScreenState=UNKNOWN, waitForNegativeProximity=false
82427: 01-01 00:45:07.288 1110 2016 D DisplayPowerController: requestPowerState changed:false,mPendingRequestChangedLocked:false
82428: 01-01 00:45:07.288 1110 2016 D PowerManagerService: updateDisplayPowerStateLocked: mDisplayReady=true, policy=3, mWakefulness=1, mWakeLockSummary=0x1, mUserActivitySummary=0x1, mBootCompleted=true, screenBrightnessOverride=NaN, useAutoBrightness=false, mScreenBrightnessBoostInProgress=false, mIsVrModeEnabled= false, sQuiescent=false
82429: 01-01 00:45:07.288 1110 2016 D PowerManagerService: updateDisplayPowerStateLocked mDisplayReady:true,oldDisplayReady:true
82430: 01-01 00:45:07.288 1909 2119 I CAR.POWER: off display
82431: 01-01 00:45:07.289 1110 2016 D PowerManagerService: goToSleepNoUpdateLocked: eventTime=156970, reason=0, flags=0, uid=1000
82432: 01-01 00:45:07.289 1110 2016 I PowerManagerService: Going to sleep due to application (uid 1000)...
82435: 01-01 00:45:07.290 1110 2016 D PowerManagerService: updatePowerStateLocked mSystemReady:true,mDirty:2
82437: 01-01 00:45:07.290 1110 2016 D PowerManagerService: updateWakeLockSummaryLocked: mWakefulness=Dozing, mWakeLockSummary=0x1
82438: 01-01 00:45:07.290 1110 2016 D PowerManagerService: updateUserActivitySummaryLocked: mWakefulness=Dozing, mUserActivitySummary=0x1, nextTimeout=2147526907 (in 2147369935 ms)
82439: 01-01 00:45:07.290 1110 2016 D PowerManagerService: updatePowerStateLocked updateDisplayPowerStateLocked dirtyPhase2:2
82440: 01-01 00:45:07.291 1110 2016 D PowerManagerService: updateDisplayPowerStateLocked mRequestWaitForNegativeProximity:false
82441: 01-01 00:45:07.291 1110 2016 D DisplayManagerService: requestPowerState
82442: 01-01 00:45:07.291 1110 2016 D DisplayPowerController: requestPowerState: policy=BRIGHT, useProximitySensor=false, screenBrightnessOverride=NaN, useAutoBrightness=false, screenAutoBrightnessAdjustmentOverride=NaN, screenLowPowerBrightnessFactor=1.0, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=NaN, dozeScreenState=UNKNOWN, waitForNegativeProximity=false
82443: 01-01 00:45:07.291 1110 2016 D DisplayPowerController: requestPowerState changed:false,mPendingRequestChangedLocked:false
82444: 01-01 00:45:07.291 1110 2016 D PowerManagerService: updateDisplayPowerStateLocked: mDisplayReady=true, policy=3, mWakefulness=3, mWakeLockSummary=0x1, mUserActivitySummary=0x1, mBootCompleted=true, screenBrightnessOverride=NaN, useAutoBrightness=false, mScreenBrightnessBoostInProgress=false, mIsVrModeEnabled= false, sQuiescent=false
82445: 01-01 00:45:07.291 1110 2016 D PowerManagerService: updateDisplayPowerStateLocked mDisplayReady:true,oldDisplayReady:true
82446: 01-01 00:45:07.292 1110 1281 I DreamManagerService: Entering dreamland.
82448: 01-01 00:45:07.292 1110 1281 D PowerManagerService: acquireWakeLockInternal: lock=183005125, flags=0x1, tag="startDream", ws=null, uid=1000, pid=1110
82449: 01-01 00:45:07.292 1110 1281 D PowerManagerService: updatePowerStateLocked mSystemReady:true,mDirty:1
82450: 01-01 00:45:07.293 1110 1281 D PowerManagerService: updateWakeLockSummaryLocked: mWakefulness=Dozing, mWakeLockSummary=0x1
82451: 01-01 00:45:07.293 1110 1281 D PowerManagerService: updateUserActivitySummaryLocked: mWakefulness=Dozing, mUserActivitySummary=0x1, nextTimeout=2147526907 (in 2147369933 ms)
82452: 01-01 00:45:07.293 1110 1281 D PowerManagerService: updatePowerStateLocked updateDisplayPowerStateLocked dirtyPhase2:1
82453: 01-01 00:45:07.293 1110 1281 D PowerManagerService: updateDisplayPowerStateLocked mRequestWaitForNegativeProximity:false
82454: 01-01 00:45:07.293 1110 1281 D DisplayManagerService: requestPowerState
82455: 01-01 00:45:07.293 1110 1281 D DisplayPowerController: requestPowerState: policy=BRIGHT, useProximitySensor=false, screenBrightnessOverride=NaN, useAutoBrightness=false, screenAutoBrightnessAdjustmentOverride=NaN, screenLowPowerBrightnessFactor=1.0, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=NaN, dozeScreenState=UNKNOWN, waitForNegativeProximity=false
82456: 01-01 00:45:07.294 1110 1281 D DisplayPowerController: requestPowerState changed:false,mPendingRequestChangedLocked:false
82457: 01-01 00:45:07.294 1110 1281 D PowerManagerService: updateDisplayPowerStateLocked: mDisplayReady=true, policy=3, mWakefulness=3, mWakeLockSummary=0x1, mUserActivitySummary=0x1, mBootCompleted=true, screenBrightnessOverride=NaN, useAutoBrightness=false, mScreenBrightnessBoostInProgress=false, mIsVrModeEnabled= false, sQuiescent=false
82458: 01-01 00:45:07.294 1110 1281 D PowerManagerService: updateDisplayPowerStateLocked mDisplayReady:true,oldDisplayReady:true
82459: 01-01 00:45:07.295 1110 1281 I PowerManagerService: Dozing...
82460: 01-01 00:45:07.295 1110 1281 I PowerManagerService: WAKEFULNESS_DOZING isDreaming:true
82461: 01-01 00:45:07.295 1110 1281 I PowerManagerService: WAKEFULNESS_DOZING isDreaming:true
82498: 01-01 00:45:07.405 1909 2119 I CAR.POWER: starting shutdown prepare with Garage Mode
82499: 01-01 00:45:07.4