summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author an.xi <an.xi@amlogic.com> 2023-03-09 03:08:46 +0000
committer Paul Colta <donpaul@google.com> 2023-06-08 09:27:24 +0000
commit82e0f752964aef3bc0504fb58aa8c1edf17d42f1 (patch)
treeeb716c4bae6135da362fd501956d7c4d3d413a4e
parentfceaa70d93b0bfabd5ea3c23a722707cadf16c30 (diff)
cec: Reset system audio mode status carefully [2/2]
PD#OTT-40245 BUG=266766058 Problem: When there is a transmission error with <GIVE SYSTEM AUDIO MODE STATUS> caused by cec busyness, playback could reset the audio mode status and does not send volume keyevents to the audio system then. Solution: Reset system audio mode status only with error NACK, which means the target device is not connected. Verify: Walmart Test: presubmits Change-Id: Ife26b2251f40ee11cdbc86fe0797d29a74fb9be5 Signed-off-by: an.xi <an.xi@amlogic.com>
-rw-r--r--services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java3
1 files changed, 2 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java
index 576a5ff4305e..72895e338de6 100644
--- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevicePlayback.java
@@ -110,7 +110,8 @@ public class HdmiCecLocalDevicePlayback extends HdmiCecLocalDeviceSource {
new SendMessageCallback() {
@Override
public void onSendCompleted(int error) {
- if (error != SendMessageResult.SUCCESS) {
+ // In consideration of occasional transmission failures.
+ if (error == SendMessageResult.NACK) {
HdmiLogger.debug(
"AVR did not respond to <Give System Audio Mode Status>");
mService.setSystemAudioActivated(false);