From 066db152a472bb1efa11dbbffe65b2946c5ab77c Mon Sep 17 00:00:00 2001 From: Amy Date: Thu, 4 Oct 2018 09:54:51 -0700 Subject: [PATCH] Atom: initPortInfo when receive hotplug from tx for audiosystem device[1/3] ag/5190487 BUG=115782816, 113608041 PD# 174288 Test: local tested Change-Id: I7bfdcbaf28dbe7cf9538c0eadbf751b376fb8404 (cherry picked from https://partner-android-review.git.corp.google.com/c/platform/frameworks/base/+/1152062) --- .../src/android/provider/SettingsBackupTest.java | 1 - .../java/com/android/server/hdmi/HdmiControlService.java | 9 +++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/core/tests/coretests/src/android/provider/SettingsBackupTest.java b/core/tests/coretests/src/android/provider/SettingsBackupTest.java index f8633565cc868..06595c307e3c5 100644 --- a/core/tests/coretests/src/android/provider/SettingsBackupTest.java +++ b/core/tests/coretests/src/android/provider/SettingsBackupTest.java @@ -270,7 +270,6 @@ public class SettingsBackupTest { Settings.Global.GNSS_SATELLITE_BLACKLIST, Settings.Global.GPRS_REGISTER_CHECK_PERIOD_MS, Settings.Global.HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED, - Settings.Global.HDMI_CONTROL_AUTO_TV_OFF_ENABLED, Settings.Global.HDMI_CONTROL_AUTO_WAKEUP_ENABLED, Settings.Global.HDMI_CONTROL_ENABLED, Settings.Global.HDMI_SYSTEM_AUDIO_CONTROL_ENABLED, diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java index 88d45fa91cd54..833091df5f1cb 100644 --- a/services/core/java/com/android/server/hdmi/HdmiControlService.java +++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java @@ -1008,6 +1008,10 @@ public class HdmiControlService extends SystemService { assertRunOnServiceThread(); if (connected && !isTvDevice()) { + if (getPortInfo(portId).getType() == HdmiPortInfo.PORT_OUTPUT && isSwitchDevice()) { + initPortInfo(); + HdmiLogger.debug("initPortInfo for switch device when onHotplug from tx."); + } ArrayList localDevices = new ArrayList<>(); for (int type : mLocalDevices) { if (type == HdmiDeviceInfo.DEVICE_PLAYBACK @@ -2124,6 +2128,11 @@ public class HdmiControlService extends SystemService { return mLocalDevices.contains(HdmiDeviceInfo.DEVICE_PLAYBACK); } + boolean isSwitchDevice() { + return SystemProperties.getBoolean( + Constants.PROPERTY_HDMI_IS_DEVICE_HDMI_CEC_SWITCH, false); + } + boolean isTvDeviceEnabled() { return isTvDevice() && tv() != null; }