From 2ee0d6f44d7274bb1846cc6ff7a60451539a2b51 Mon Sep 17 00:00:00 2001 From: Jinsuk Kim Date: Wed, 28 Jan 2015 17:38:28 +0900 Subject: [PATCH] CEC: Stop ARC if hotplug event is asserted low Updated to stop ARC as specified in HEAC 2.4 transmission condition. Bug: 19170947 Change-Id: Ibf797ce3b49f32561ef0c36b6874e7ebe19ed65a --- .../java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java index 9373e43fb2b1..664f541c73d3 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java @@ -34,6 +34,7 @@ import android.annotation.Nullable; import android.content.Context; import android.hardware.hdmi.HdmiControlManager; import android.hardware.hdmi.HdmiDeviceInfo; +import android.hardware.hdmi.HdmiPortInfo; import android.hardware.hdmi.HdmiRecordSources; import android.hardware.hdmi.HdmiTimerRecordSources; import android.hardware.hdmi.IHdmiControlCallback; @@ -878,6 +879,17 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { return oldStatus; } + @ServiceThreadOnly + private void updateArcFeatureStatus(int portId, boolean isConnected) { + assertRunOnServiceThread(); + // HEAC 2.4, HEACT 5-15 + // Should not activate ARC if +5V status is false. + HdmiPortInfo portInfo = mService.getPortInfo(portId); + if (portInfo.isArcSupported()) { + changeArcFeatureEnabled(isConnected); + } + } + private void notifyArcStatusToAudioService(boolean enabled) { // Note that we don't set any name to ARC. mService.getAudioManager().setWiredDeviceConnectionState( @@ -1509,6 +1521,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice { // It covers seq #40, #43. hotplugActions.get(0).pollAllDevicesNow(); } + updateArcFeatureStatus(portId, connected); } private void removeCecSwitches(int portId) { -- 2.11.0