diff --git a/services/audiopolicy/AudioPolicyManager.cpp b/services/audiopolicy/AudioPolicyManager.cpp
index 4fcf43b..95179b7 100644
--- a/services/audiopolicy/AudioPolicyManager.cpp
+++ b/services/audiopolicy/AudioPolicyManager.cpp
@@ -516,7 +516,10 @@
             config != AUDIO_POLICY_FORCE_WIRED_ACCESSORY &&
             config != AUDIO_POLICY_FORCE_ANALOG_DOCK &&
             config != AUDIO_POLICY_FORCE_DIGITAL_DOCK && config != AUDIO_POLICY_FORCE_NONE &&
-            config != AUDIO_POLICY_FORCE_NO_BT_A2DP) {
+            config != AUDIO_POLICY_FORCE_NO_BT_A2DP &&
+            config != AUDIO_POLICY_FORCE_SYSTEM_AUDIO_HDMI_ARC &&
+            config != AUDIO_POLICY_FORCE_SYSTEM_AUDIO_SPDIF &&
+            config != AUDIO_POLICY_FORCE_SYSTEM_AUDIO_LINE) {
             ALOGW("setForceUse() invalid config %d for FOR_MEDIA", config);
             return;
         }
@@ -3536,10 +3539,32 @@
         if (device2 == AUDIO_DEVICE_NONE) {
             device2 = availableOutputDeviceTypes & AUDIO_DEVICE_OUT_SPEAKER;
         }
+        int device3 = AUDIO_DEVICE_NONE;
+        if (strategy == STRATEGY_MEDIA) {
+            // Hdmi system audio should use manually configured device type.
+            if (mForceUse[AUDIO_POLICY_FORCE_FOR_MEDIA]
+                    == AUDIO_POLICY_FORCE_SYSTEM_AUDIO_HDMI_ARC) {
+                device3 = availableOutputDeviceTypes & AUDIO_DEVICE_OUT_HDMI_ARC;
+            } else if (mForceUse[AUDIO_POLICY_FORCE_FOR_MEDIA]
+                    == AUDIO_POLICY_FORCE_SYSTEM_AUDIO_SPDIF) {
+                device3 = availableOutputDeviceTypes & AUDIO_DEVICE_OUT_SPDIF;
+            } else if (mForceUse[AUDIO_POLICY_FORCE_FOR_MEDIA]
+                    == AUDIO_POLICY_FORCE_SYSTEM_AUDIO_LINE) {
+                device3 = availableOutputDeviceTypes & AUDIO_DEVICE_OUT_LINE;
+            }
+        }
 
+        // Merge hdmi cec system audio and existing device for media. If system audio is on,
+        // internal speaker will be muted but others are not.
+        device2 |= device3;
         // device is DEVICE_OUT_SPEAKER if we come from case STRATEGY_SONIFICATION or
         // STRATEGY_ENFORCED_AUDIBLE, AUDIO_DEVICE_NONE otherwise
         device |= device2;
+
+        // If system audio mode is on and proper audio out is set, remove speaker from device.
+        if (device3 != AUDIO_DEVICE_NONE) {
+             device &= ~AUDIO_DEVICE_OUT_SPEAKER;
+        }
         if (device) break;
         device = mDefaultOutputDevice->mDeviceType;
         if (device == AUDIO_DEVICE_NONE) {
