diff options
| author | 2018-01-18 23:20:44 +0000 | |
|---|---|---|
| committer | 2018-01-18 23:20:44 +0000 | |
| commit | 0f279d457726bb63bb572d88ab025b74ca07af5f (patch) | |
| tree | 61713c14a155fa99ef99760ea42ce51427370eb7 | |
| parent | cc07fa73a17b02f65a6e4ae196d6a90886cee6cb (diff) | |
| parent | b88d9b4593d52a52e0b9c70f719b8ed1cbe7b3fb (diff) | |
Merge "Fix OTP performance with no Vendor ID device" am: 6ecaac4c9f
am: b88d9b4593
Change-Id: Iaaa8b0ebfa73f5567dc4dfc84d23ed47bb0c3827
| -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(); } |