hwc: Ignore content for HDMI when it is not enabled
authorBenoit Goby <benoit@android.com>
Sat, 22 Sep 2012 00:12:28 +0000 (17:12 -0700)
committerBenoit Goby <benoit@android.com>
Wed, 26 Sep 2012 19:02:42 +0000 (12:02 -0700)
Bug: 7231798
Change-Id: I82d4baa3c1b84c2f16e6b633f4e1457730333124

libhwc/hwc.cpp

index 6e4fc2a14cd2863fb0a2dc3ad82f6a5faa84f49e..1dea15ae976966105bad305af7de6526eba80801 100644 (file)
@@ -949,10 +949,6 @@ static int exynos5_prepare(hwc_composer_device_1_t *dev,
     }
 
     if (hdmi_contents) {
-        if (!pdev->hdmi_enabled) {
-            ALOGE("HDMI disabled; can't prepare contents of external display");
-            return -EINVAL;
-        }
         int err = exynos5_prepare_hdmi(pdev, hdmi_contents);
         if (err)
             return err;
@@ -1320,6 +1316,13 @@ static int exynos5_set_hdmi(exynos5_hwc_composer_device_1_t *pdev,
                           i, strerror(errno));
             close(layer.acquireFenceFd);
         }
+    }
+
+    if (!pdev->hdmi_enabled)
+        return 0;
+
+    for (size_t i = 0; i < contents->numHwLayers; i++) {
+        hwc_layer_1_t &layer = contents->hwLayers[i];
 
         if (layer.compositionType == HWC_FRAMEBUFFER_TARGET) {
             if (!layer.handle)
@@ -1353,10 +1356,6 @@ static int exynos5_set(struct hwc_composer_device_1 *dev,
     }
 
     if (hdmi_contents) {
-        if (!pdev->hdmi_enabled) {
-            ALOGE("HDMI disabled; can't set contents of external display");
-            return -EINVAL;
-        }
         int err = exynos5_set_hdmi(pdev, hdmi_contents);
         if (err)
             return err;