diff options
| author | 2018-01-18 22:16:23 +0000 | |
|---|---|---|
| committer | 2018-01-18 22:16:23 +0000 | |
| commit | 6ecaac4c9f594b26e7734b63cb66a1e83effa89c (patch) | |
| tree | 0cd463d5170498b7ebc63728fe14aa3ca3d33e7b | |
| parent | fca5ee0bb80d9f0d9e3ce580ce00903ee5ea3745 (diff) | |
| parent | 68e1f172cee1ba1d64f1a0ac9d645b1cca888587 (diff) | |
Merge "Fix OTP performance with no Vendor ID device"
| -rwxr-xr-x[-rw-r--r--] | services/core/java/com/android/server/hdmi/DeviceDiscoveryAction.java | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/hdmi/DeviceDiscoveryAction.java b/services/core/java/com/android/server/hdmi/DeviceDiscoveryAction.java index 97a6e850654b..db8dedbf12cc 100644..100755 --- a/services/core/java/com/android/server/hdmi/DeviceDiscoveryAction.java +++ b/services/core/java/com/android/server/hdmi/DeviceDiscoveryAction.java @@ -228,12 +228,20 @@ final class DeviceDiscoveryAction extends HdmiCecFeatureAction { if (cmd.getOpcode() == Constants.MESSAGE_SET_OSD_NAME) { handleSetOsdName(cmd); return true; + } else if ((cmd.getOpcode() == Constants.MESSAGE_FEATURE_ABORT) && + ((cmd.getParams()[0] & 0xFF) == Constants.MESSAGE_GIVE_OSD_NAME)) { + handleSetOsdName(cmd); + return true; } return false; case STATE_WAITING_FOR_VENDOR_ID: if (cmd.getOpcode() == Constants.MESSAGE_DEVICE_VENDOR_ID) { handleVendorId(cmd); return true; + } else if ((cmd.getOpcode() == Constants.MESSAGE_FEATURE_ABORT) && + ((cmd.getParams()[0] & 0xFF) == Constants.MESSAGE_GIVE_DEVICE_VENDOR_ID)) { + handleVendorId(cmd); + return true; } return false; case STATE_WAITING_FOR_DEVICE_POLLING: @@ -281,7 +289,11 @@ final class DeviceDiscoveryAction extends HdmiCecFeatureAction { String displayName = null; try { - displayName = new String(cmd.getParams(), "US-ASCII"); + if (cmd.getOpcode() == Constants.MESSAGE_FEATURE_ABORT) { + displayName = HdmiUtils.getDefaultDeviceName(current.mLogicalAddress); + } else { + displayName = new String(cmd.getParams(), "US-ASCII"); + } } catch (UnsupportedEncodingException e) { Slog.w(TAG, "Failed to decode display name: " + cmd.toString()); // If failed to get display name, use the default name of device. @@ -302,9 +314,12 @@ final class DeviceDiscoveryAction extends HdmiCecFeatureAction { return; } - byte[] params = cmd.getParams(); - int vendorId = HdmiUtils.threeBytesToInt(params); - current.mVendorId = vendorId; + if (cmd.getOpcode() != Constants.MESSAGE_FEATURE_ABORT) { + byte[] params = cmd.getParams(); + int vendorId = HdmiUtils.threeBytesToInt(params); + current.mVendorId = vendorId; + } + increaseProcessedDeviceCount(); checkAndProceedStage(); } |