summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jinsuk Kim <jinsukkim@google.com> 2015-01-06 20:09:01 +0000
committer Android Git Automerger <android-git-automerger@android.com> 2015-01-06 20:09:01 +0000
commit59891a9547c9b96585fedf6ef042f1ef00dc4b5c (patch)
treef7f35f5ba649eedcfc2d8e9906925c3f277634a6
parentffe26c219f5f0b12af16e9f1cc39581a3812b96f (diff)
parent30a061ed4ffb7360d55b610566ce47b57c058543 (diff)
am 30a061ed: am e96f9dd1: am b0b4921b: Merge "CEC: Make deviceSelect work for MHL device" into lmp-mr1-dev
* commit '30a061ed4ffb7360d55b610566ce47b57c058543': CEC: Make deviceSelect work for MHL device
-rw-r--r--services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java8
-rw-r--r--services/core/java/com/android/server/hdmi/HdmiControlService.java10
2 files changed, 16 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java
index ed7cebbc1b03..90dbd1765200 100644
--- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java
@@ -326,8 +326,12 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
ActiveSource activeSource = getActiveSource();
HdmiDeviceInfo info = getCecDeviceInfo(activeSource.logicalAddress);
if (info == null) {
- info = new HdmiDeviceInfo(Constants.ADDR_INVALID, path, getActivePortId(),
- HdmiDeviceInfo.DEVICE_RESERVED, 0, null);
+ info = mService.getDeviceInfoByPort(getActivePortId());
+ if (info == null) {
+ // No CEC/MHL device is present at the port. Attempt to switch to
+ // the hardware port itself for non-CEC devices that may be connected.
+ info = new HdmiDeviceInfo(path, getActivePortId());
+ }
}
mService.invokeInputChangeListener(info);
}
diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java
index 8ce6caf30c84..e8cb7204e5f6 100644
--- a/services/core/java/com/android/server/hdmi/HdmiControlService.java
+++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java
@@ -672,6 +672,16 @@ public final class HdmiControlService extends SystemService {
return tv() == null ? null : tv().getCecDeviceInfo(logicalAddress);
}
+ @ServiceThreadOnly
+ HdmiDeviceInfo getDeviceInfoByPort(int port) {
+ assertRunOnServiceThread();
+ HdmiMhlLocalDeviceStub info = mMhlController.getLocalDevice(port);
+ if (info != null) {
+ return info.getInfo();
+ }
+ return null;
+ }
+
/**
* Returns version of CEC.
*/