aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2011-11-03 10:52:06 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2011-12-02 01:54:25 -0500
commit3ba2a1c01546a4980e7b7742445560ae4afd1fc1 (patch)
treec55d112b11b62e05e1a7923c6b2709c667c18544 /drivers/video
parentcf0736681e569b0d3803d68d4f6d00f544f3426a (diff)
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')
-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 268704bc6c39..d8d0d11d95d9 100644
--- a/drivers/video/omap2/dss/manager.c
+++ b/drivers/video/omap2/dss/manager.c
@@ -510,8 +510,6 @@ struct overlay_cache_data {
510 struct omap_overlay_info info; 510 struct omap_overlay_info info;
511 511
512 enum omap_channel channel; 512 enum omap_channel channel;
513 bool replication;
514 bool ilace;
515 513
516 u32 fifo_low; 514 u32 fifo_low;
517 u32 fifo_high; 515 u32 fifo_high;
@@ -757,8 +755,10 @@ static int overlay_enabled(struct omap_overlay *ovl)
757 755
758static int configure_overlay(enum omap_plane plane) 756static int configure_overlay(enum omap_plane plane)
759{ 757{
758 struct omap_overlay *ovl;
760 struct overlay_cache_data *c; 759 struct overlay_cache_data *c;
761 struct omap_overlay_info *oi; 760 struct omap_overlay_info *oi;
761 bool ilace, replication;
762 int r; 762 int r;
763 763
764 DSSDBGF("%d", plane); 764 DSSDBGF("%d", plane);
@@ -771,8 +771,14 @@ static int configure_overlay(enum omap_plane plane)
771 return 0; 771 return 0;
772 } 772 }
773 773
774 r = dispc_ovl_setup(plane, oi, c->ilace, c->channel, 774 ovl = omap_dss_get_overlay(plane);
775 c->replication, c->fifo_low, c->fifo_high); 775
776 replication = dss_use_replication(ovl->manager->device, oi->color_mode);
777
778 ilace = ovl->manager->device->type == OMAP_DISPLAY_TYPE_VENC;
779
780 r = dispc_ovl_setup(plane, oi, ilace, c->channel,
781 replication, c->fifo_low, c->fifo_high);
776 if (r) { 782 if (r) {
777 /* this shouldn't happen */ 783 /* this shouldn't happen */
778 DSSERR("dispc_ovl_setup failed for ovl %d\n", plane); 784 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)
1038 oc->dirty = true; 1044 oc->dirty = true;
1039 oc->info = ovl->info; 1045 oc->info = ovl->info;
1040 1046
1041 oc->replication =
1042 dss_use_replication(dssdev, ovl->info.color_mode);
1043
1044 oc->ilace = dssdev->type == OMAP_DISPLAY_TYPE_VENC;
1045
1046 oc->channel = ovl->manager->id; 1047 oc->channel = ovl->manager->id;
1047 1048
1048 oc->enabled = true; 1049 oc->enabled = true;