Browse Source

OMAPDSS: handle ilace/replication when configuring overlay

Move the configuration of interlace and replication from
omap_dss_mgr_apply() to configure_overlay(). This removes the need to
store the values into the cache data.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Tomi Valkeinen 13 years ago
parent
commit
3ba2a1c015
1 changed files with 10 additions and 9 deletions
  1. 10 9
      drivers/video/omap2/dss/manager.c

+ 10 - 9
drivers/video/omap2/dss/manager.c

@@ -510,8 +510,6 @@ struct overlay_cache_data {
 	struct omap_overlay_info info;
 
 	enum omap_channel channel;
-	bool replication;
-	bool ilace;
 
 	u32 fifo_low;
 	u32 fifo_high;
@@ -757,8 +755,10 @@ static int overlay_enabled(struct omap_overlay *ovl)
 
 static int configure_overlay(enum omap_plane plane)
 {
+	struct omap_overlay *ovl;
 	struct overlay_cache_data *c;
 	struct omap_overlay_info *oi;
+	bool ilace, replication;
 	int r;
 
 	DSSDBGF("%d", plane);
@@ -771,8 +771,14 @@ static int configure_overlay(enum omap_plane plane)
 		return 0;
 	}
 
-	r = dispc_ovl_setup(plane, oi, c->ilace, c->channel,
-		c->replication, c->fifo_low, c->fifo_high);
+	ovl = omap_dss_get_overlay(plane);
+
+	replication = dss_use_replication(ovl->manager->device, oi->color_mode);
+
+	ilace = ovl->manager->device->type == OMAP_DISPLAY_TYPE_VENC;
+
+	r = dispc_ovl_setup(plane, oi, ilace, c->channel,
+		replication, c->fifo_low, c->fifo_high);
 	if (r) {
 		/* this shouldn't happen */
 		DSSERR("dispc_ovl_setup failed for ovl %d\n", plane);
@@ -1038,11 +1044,6 @@ static int omap_dss_mgr_apply(struct omap_overlay_manager *mgr)
 		oc->dirty = true;
 		oc->info = ovl->info;
 
-		oc->replication =
-			dss_use_replication(dssdev, ovl->info.color_mode);
-
-		oc->ilace = dssdev->type == OMAP_DISPLAY_TYPE_VENC;
-
 		oc->channel = ovl->manager->id;
 
 		oc->enabled = true;