summaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/dss/manager.c
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2011-11-03 16:52:06 +0200
committerTomi Valkeinen <tomi.valkeinen@ti.com>2011-12-02 08:54:25 +0200
commit3ba2a1c01546a4980e7b7742445560ae4afd1fc1 (patch)
treec55d112b11b62e05e1a7923c6b2709c667c18544 /drivers/video/omap2/dss/manager.c
parentcf0736681e569b0d3803d68d4f6d00f544f3426a (diff)
downloadop-kernel-dev-3ba2a1c01546a4980e7b7742445560ae4afd1fc1.zip
op-kernel-dev-3ba2a1c01546a4980e7b7742445560ae4afd1fc1.tar.gz
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>
Diffstat (limited to 'drivers/video/omap2/dss/manager.c')
-rw-r--r--drivers/video/omap2/dss/manager.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/drivers/video/omap2/dss/manager.c b/drivers/video/omap2/dss/manager.c
index 268704b..d8d0d11 100644
--- a/drivers/video/omap2/dss/manager.c
+++ b/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;
OpenPOWER on IntegriCloud