diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java index 4526ab74387bc..7c5550a678e20 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java @@ -250,7 +250,8 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { @ServiceThreadOnly boolean dispatchMessage(HdmiCecMessage message) { assertRunOnServiceThread(); - if (mService.isPowerStandby() && mStandbyHandler.handleCommand(message)) { + if (mService.isPowerStandby() && !mService.isWakeUpMessageReceived() + && mStandbyHandler.handleCommand(message)) { return true; } return super.onMessage(message); diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java index 9cb54e6e451bf..4c6b8328e2137 100644 --- a/services/core/java/com/android/server/hdmi/HdmiControlService.java +++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java @@ -2017,6 +2017,10 @@ public final class HdmiControlService extends SystemService { // the intent, the sequence will continue at onStandby(). } + boolean isWakeUpMessageReceived() { + return mWakeUpMessageReceived; + } + @ServiceThreadOnly private void onWakeUp() { assertRunOnServiceThread(); @@ -2119,7 +2123,6 @@ public final class HdmiControlService extends SystemService { device.onStandby(mStandbyMessageReceived, standbyAction); } mStandbyMessageReceived = false; - mAddressAllocated = false; mCecController.setOption(OptionKey.SYSTEM_CEC_CONTROL, false); mMhlController.setOption(OPTION_MHL_SERVICE_CONTROL, DISABLED); }