]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - android-sdk/kernel-video.git/commitdiff
OMAPDSS : DSSCOMP : Avoid pushing content if no panel is active
authorDandawate Saket <dsaket@ti.com>
Tue, 2 Apr 2013 13:40:56 +0000 (08:40 -0500)
committerPraneeth Bajjuri <praneeth@ti.com>
Fri, 12 Jul 2013 22:41:43 +0000 (17:41 -0500)
Currently we push content on a blanked manager in case it is
default HDMI display. This causes a lot of logging in dsscomp call
back when we apply blank to manager.

Check added to see if number of overlay in the composition are not
zero.

In HWC we are checking if the default display is not present
we will populate the composition number of overlay as zero.

Dependencies:
This patch has dependency on HWC patch mentioned below..
http://review.omapzoom.org/#/c/26472/ - JB release

Change-Id: Icadfecb8f88adf3c6020b17d1869b5bb49b0efe6
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
drivers/video/omap2/dsscomp/gralloc.c

index 2c4ca72deb88d99cc8cdf77fad3cfd227ce5348e..49dc65d5f6f0630cac3a0654393ca03f0779e72f 100755 (executable)
@@ -166,6 +166,22 @@ int dsscomp_gralloc_queue_ioctl(struct dsscomp_setup_dispc_data *d)
        return ret;
 }
 
+static bool dsscomp_is_any_device_active(void)
+{
+       struct omap_dss_device *dssdev;
+       u32 display_ix;
+
+       /* We have to also check for device active in case HWC logic has
+        * not yet started for boot logo.
+        */
+       for (display_ix = 0 ; display_ix < cdev->num_displays ; display_ix++) {
+               dssdev = cdev->displays[display_ix];
+               if (dssdev && dssdev->state == OMAP_DSS_DISPLAY_ACTIVE)
+                       return true;
+       }
+       return false;
+}
+
 int dsscomp_gralloc_queue(struct dsscomp_setup_dispc_data *d,
                        struct tiler_pa_info **pas,
                        bool early_callback,
@@ -232,7 +248,7 @@ int dsscomp_gralloc_queue(struct dsscomp_setup_dispc_data *d,
        memset(comp, 0, sizeof(comp));
        memset(ovl_new_use_mask, 0, sizeof(ovl_new_use_mask));
 
-       if (skip)
+       if (skip || !dsscomp_is_any_device_active())
                goto skip_comp;
 
        d->mode = DSSCOMP_SETUP_DISPLAY;