diff options
| author | 2015-01-28 17:38:28 +0900 | |
|---|---|---|
| committer | 2015-01-29 06:45:02 +0000 | |
| commit | 2ee0d6f44d7274bb1846cc6ff7a60451539a2b51 (patch) | |
| tree | 2e338aab46fcba609e2570e04316df38369ffb0b | |
| parent | 7640d9895cf8fae7a99a7db5bba0079ba6022621 (diff) | |
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
| -rw-r--r-- | services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java | 13 | 
1 files changed, 13 insertions, 0 deletions
| 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) { |