diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java index fb2d2ee08cbda..16bffd9a597bc 100755 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java @@ -71,7 +71,7 @@ abstract class HdmiCecLocalDevice { protected final int mDeviceType; protected int mPreferredAddress; @GuardedBy("mLock") - protected HdmiDeviceInfo mDeviceInfo; + private HdmiDeviceInfo mDeviceInfo; protected int mLastKeycode = HdmiCecKeycode.UNSUPPORTED_KEYCODE; protected int mLastKeyRepeatCount = 0; @@ -666,11 +666,9 @@ abstract class HdmiCecLocalDevice { * Computes the set of supported device features, and updates local state to match. */ private void updateDeviceFeatures() { - synchronized (mLock) { - setDeviceInfo(getDeviceInfo().toBuilder() - .setDeviceFeatures(computeDeviceFeatures()) - .build()); - } + setDeviceInfo(getDeviceInfo().toBuilder() + .setDeviceFeatures(computeDeviceFeatures()) + .build()); } /** @@ -678,9 +676,7 @@ abstract class HdmiCecLocalDevice { */ protected final DeviceFeatures getDeviceFeatures() { updateDeviceFeatures(); - synchronized (mLock) { - return getDeviceInfo().getDeviceFeatures(); - } + return getDeviceInfo().getDeviceFeatures(); } @Constants.HandleMessageResult @@ -982,14 +978,12 @@ abstract class HdmiCecLocalDevice { return mDeviceType; } - @GuardedBy("mLock") HdmiDeviceInfo getDeviceInfo() { synchronized (mLock) { return mDeviceInfo; } } - @GuardedBy("mLock") void setDeviceInfo(HdmiDeviceInfo info) { synchronized (mLock) { mDeviceInfo = info; @@ -1042,10 +1036,8 @@ abstract class HdmiCecLocalDevice { // Send if using CEC 2.0 or above. if (mService.getCecVersion() >= HdmiControlManager.HDMI_CEC_VERSION_2_0) { - synchronized (mLock) { - mService.sendCecCommand(HdmiCecMessageBuilder.buildGiveFeatures( - getDeviceInfo().getLogicalAddress(), targetAddress)); - } + mService.sendCecCommand(HdmiCecMessageBuilder.buildGiveFeatures( + getDeviceInfo().getLogicalAddress(), targetAddress)); } // If we don't already have a {@link SetAudioVolumeLevelDiscoveryAction} for the target diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java index 26e38bdb6d51e..5cfe27a62e1bd 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java @@ -138,9 +138,7 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource { // does not poll local devices, we should put device info of local device // manually here. for (HdmiCecLocalDevice device : mService.getAllLocalDevices()) { - synchronized (device.mLock) { - mService.getHdmiCecNetwork().addCecDevice(device.getDeviceInfo()); - } + mService.getHdmiCecNetwork().addCecDevice(device.getDeviceInfo()); } List hotplugActions = @@ -179,11 +177,9 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource { @ServiceThreadOnly void deviceSelect(int id, IHdmiControlCallback callback) { assertRunOnServiceThread(); - synchronized (mLock) { - if (id == getDeviceInfo().getId()) { - mService.oneTouchPlay(callback); - return; - } + if (id == getDeviceInfo().getId()) { + mService.oneTouchPlay(callback); + return; } HdmiDeviceInfo targetDevice = mService.getHdmiCecNetwork().getDeviceInfo(id); if (targetDevice == null) { diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java index f8a74f4f3f554..84834ab57f8f8 100644 --- a/services/core/java/com/android/server/hdmi/HdmiControlService.java +++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java @@ -1331,13 +1331,11 @@ public class HdmiControlService extends SystemService { */ private boolean sourceAddressIsLocal(HdmiCecMessage message) { for (HdmiCecLocalDevice device : getAllLocalDevices()) { - synchronized (device.mLock) { - if (message.getSource() == device.getDeviceInfo().getLogicalAddress() - && message.getSource() != Constants.ADDR_UNREGISTERED) { - HdmiLogger.warning( - "Unexpected source: message sent from device itself, " + message); - return true; - } + if (message.getSource() == device.getDeviceInfo().getLogicalAddress() + && message.getSource() != Constants.ADDR_UNREGISTERED) { + HdmiLogger.warning( + "Unexpected source: message sent from device itself, " + message); + return true; } } return false; @@ -1560,9 +1558,7 @@ public class HdmiControlService extends SystemService { if (deviceInfo.getDisplayName().equals(newDisplayName)) { continue; } - synchronized (device.mLock) { - device.setDeviceInfo(deviceInfo.toBuilder().setDisplayName(newDisplayName).build()); - } + device.setDeviceInfo(deviceInfo.toBuilder().setDisplayName(newDisplayName).build()); sendCecCommand( HdmiCecMessageBuilder.buildSetOsdNameCommand( deviceInfo.getLogicalAddress(), Constants.ADDR_TV, newDisplayName)); @@ -4096,10 +4092,7 @@ public class HdmiControlService extends SystemService { public void onAudioDeviceVolumeChanged( @NonNull AudioDeviceAttributes audioDevice, @NonNull VolumeInfo volumeInfo) { - int localDeviceAddress; - synchronized (mLocalDevice.mLock) { - localDeviceAddress = mLocalDevice.getDeviceInfo().getLogicalAddress(); - } + int localDeviceAddress = mLocalDevice.getDeviceInfo().getLogicalAddress(); sendCecCommand(SetAudioVolumeLevelMessage.build( localDeviceAddress, mSystemAudioDevice.getLogicalAddress(), diff --git a/services/tests/servicestests/src/com/android/server/hdmi/BaseAbsoluteVolumeControlTest.java b/services/tests/servicestests/src/com/android/server/hdmi/BaseAbsoluteVolumeControlTest.java index e06877f9144eb..8ff87e35f9331 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/BaseAbsoluteVolumeControlTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/BaseAbsoluteVolumeControlTest.java @@ -212,9 +212,7 @@ public abstract class BaseAbsoluteVolumeControlTest { } protected int getLogicalAddress() { - synchronized (mHdmiCecLocalDevice.mLock) { - return mHdmiCecLocalDevice.getDeviceInfo().getLogicalAddress(); - } + return mHdmiCecLocalDevice.getDeviceInfo().getLogicalAddress(); } /** diff --git a/services/tests/servicestests/src/com/android/server/hdmi/DeviceSelectActionFromPlaybackTest.java b/services/tests/servicestests/src/com/android/server/hdmi/DeviceSelectActionFromPlaybackTest.java index d7fef90456ab6..eb7a76182054b 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/DeviceSelectActionFromPlaybackTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/DeviceSelectActionFromPlaybackTest.java @@ -147,10 +147,9 @@ public class DeviceSelectActionFromPlaybackTest { // The addresses depend on local device's LA. // This help the tests to pass with every local device LA. - synchronized (mHdmiCecLocalDevicePlayback.mLock) { - mPlaybackLogicalAddress1 = - mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(); - } + mPlaybackLogicalAddress1 = + mHdmiCecLocalDevicePlayback.getDeviceInfo().getLogicalAddress(); + mPlaybackLogicalAddress2 = mPlaybackLogicalAddress1 == ADDR_PLAYBACK_2 ? ADDR_PLAYBACK_1 : ADDR_PLAYBACK_2; mPlaybackLogicalAddress3 = mPlaybackLogicalAddress1 == ADDR_PLAYBACK_3 diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecControllerTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecControllerTest.java index 0cba10669c858..367f41d938d34 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecControllerTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecControllerTest.java @@ -132,9 +132,7 @@ public class HdmiCecControllerTest { mHdmiControlServiceSpy.onBootPhase(SystemService.PHASE_SYSTEM_SERVICES_READY); mTestLooper.dispatchAll(); - synchronized (playbackDevice.mLock) { - mPlaybackLogicalAddress = playbackDevice.getDeviceInfo().getLogicalAddress(); - } + mPlaybackLogicalAddress = playbackDevice.getDeviceInfo().getLogicalAddress(); mTestLooper.dispatchAll(); } diff --git a/services/tests/servicestests/src/com/android/server/hdmi/RequestSadActionTest.java b/services/tests/servicestests/src/com/android/server/hdmi/RequestSadActionTest.java index 3228e82b566b1..8b314cd888788 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/RequestSadActionTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/RequestSadActionTest.java @@ -132,9 +132,7 @@ public class RequestSadActionTest { mHdmiControlService.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC); mNativeWrapper.setPhysicalAddress(0x0000); mTestLooper.dispatchAll(); - synchronized (mHdmiCecLocalDeviceTv.mLock) { - mTvLogicalAddress = mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(); - } + mTvLogicalAddress = mHdmiCecLocalDeviceTv.getDeviceInfo().getLogicalAddress(); mNativeWrapper.clearResultMessages(); } diff --git a/services/tests/servicestests/src/com/android/server/hdmi/SetAudioVolumeLevelDiscoveryActionTest.java b/services/tests/servicestests/src/com/android/server/hdmi/SetAudioVolumeLevelDiscoveryActionTest.java index 087e407e314cd..dadf81571e30c 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/SetAudioVolumeLevelDiscoveryActionTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/SetAudioVolumeLevelDiscoveryActionTest.java @@ -112,9 +112,7 @@ public class SetAudioVolumeLevelDiscoveryActionTest { mHdmiControlServiceSpy.onBootPhase(SystemService.PHASE_BOOT_COMPLETED); mTestLooper.dispatchAll(); - synchronized (mPlaybackDevice.mLock) { - mPlaybackLogicalAddress = mPlaybackDevice.getDeviceInfo().getLogicalAddress(); - } + mPlaybackLogicalAddress = mPlaybackDevice.getDeviceInfo().getLogicalAddress(); // Setup specific to these tests mNativeWrapper.onCecMessage(HdmiCecMessageBuilder.buildReportPhysicalAddressCommand(