]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - android-sdk/kernel-video.git/commitdiff
OMAPDSS: DSSCOMP: Switch to multiple overlay apply mechanism
authorSreenidhi Koti Ananda Rao <sreenidhi@ti.com>
Mon, 1 Apr 2013 20:33:21 +0000 (15:33 -0500)
committerPraneeth Bajjuri <praneeth@ti.com>
Fri, 12 Jul 2013 22:41:43 +0000 (17:41 -0500)
Description: This patch corresponds to changes required to move to
the new apply mechanism in the DSS driver. The overlay manager keeps
track of the number of overlays requiring update & puts it into an
array before sending to the DSS2 driver.

Change-Id: Ia7d19877f2e24942933cd660d0b08aa4acfb9c53
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Conflicts:
drivers/video/omap2/dsscomp/base.c

drivers/video/omap2/dsscomp/base.c
drivers/video/omap2/dsscomp/queue.c

index 6e42602d424abcd3bb7a5b0ff535bf47730a9d51..4537bebe049b8db5e51808497797b51cc328966a 100755 (executable)
@@ -185,7 +185,6 @@ int set_dss_ovl_info(struct dss2_ovl_info *oi)
        int c;
        int bpp;
        enum tiler_fmt fmt;
-       int r = 0;
 
        /* check overlay number */
        if (!oi || oi->cfg.ix >= omap_dss_get_num_overlays())
@@ -196,12 +195,8 @@ int set_dss_ovl_info(struct dss2_ovl_info *oi)
        /* just in case there are new fields, we get the current info */
        ovl->get_overlay_info(ovl, &info);
 
-       if (!cfg->enabled) {
-               r = ovl->disable(ovl);
-               if (r)
-                       pr_warn("Error disabling ovl%d\n", cfg->ix);
+       if (!cfg->enabled)
                goto done;
-       }
 
        /* copied params */
        info.zorder = cfg->zorder;
index d372cfaec3e6d8e8bd4bd215e46adb8c70a5775c..e7ccdbd09ec0ac38cc1131c3a65f4da898753e11 100755 (executable)
@@ -593,18 +593,18 @@ skip_ovl_set:
                /* keep error if set_mgr_info failed */
                if (!r && !cb_programmed)
                        r = -EINVAL;
+               mgr->num_ovls = comp->frm.num_ovls;
                for (oix = 0; oix < comp->frm.num_ovls; oix++) {
-                       struct dss2_ovl_info *oi = comp->ovls + oix;
-                       ovl = cdev->ovls[oi->cfg.ix];
-                       if (oi->cfg.enabled) {
-                               r = ovl->enable(ovl);
-                               if (r) {
-                                       dev_err(DEV(cdev), "[%p] "
-                                               "enable overlay%d failed\n",
-                                               comp, ovl->id);
-                                       goto err;
-                               }
-                       }
+                       struct dss2_ovl_info *oi;
+                       oi = comp->ovls + oix;
+                       mgr->ovls[oix] = cdev->ovls[oi->cfg.ix];
+                       mgr->ovls[oix]->enabled = oi->cfg.enabled;
+               }
+               r = mgr->set_ovl(mgr);
+               if (r) {
+                       dev_err(DEV(cdev), "[%p] "
+                               "set_ovl failed\n", comp);
+                       goto err;
                }
        }
        mutex_unlock(&mtx);