OMAPDSS: DISPC: Constify omap_overlay_info in dispc_ovl_setup()
authorArchit Taneja <archit@ti.com>
Wed, 22 Aug 2012 07:03:49 +0000 (12:33 +0530)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Wed, 26 Sep 2012 11:58:48 +0000 (14:58 +0300)
The struct omap_overlay_info passed to dispc_ovl_setup() is used to configure
DISPC registers. It shouldn't modify the overlay_info structure. The pos_y field
was being changed in dispc_ovl_setup in the case of interlaced displays. Fix
this and const qualifier to the omap_overlay_info argument.

Signed-off-by: Archit Taneja <archit@ti.com>
drivers/video/omap2/dss/dispc.c
drivers/video/omap2/dss/dss.h

index 811fe381aaea896dea75308f525fa803daeebd58..35d388b6aec13a39a9914a2c573a9868c5a73bec 100644 (file)
@@ -2255,7 +2255,7 @@ static int dispc_ovl_calc_scaling(enum omap_plane plane,
        return 0;
 }
 
-int dispc_ovl_setup(enum omap_plane plane, struct omap_overlay_info *oi,
+int dispc_ovl_setup(enum omap_plane plane, const struct omap_overlay_info *oi,
                bool replication, const struct omap_video_timings *mgr_timings)
 {
        struct omap_overlay *ovl = omap_dss_get_overlay(plane);
@@ -2273,6 +2273,7 @@ int dispc_ovl_setup(enum omap_plane plane, struct omap_overlay_info *oi,
        enum omap_channel channel;
        int x_predecim = 1, y_predecim = 1;
        bool ilace = mgr_timings->interlace;
+       u16 pos_y = oi->pos_y;
 
        channel = dispc_ovl_get_channel_out(plane);
 
@@ -2295,12 +2296,12 @@ int dispc_ovl_setup(enum omap_plane plane, struct omap_overlay_info *oi,
        if (ilace) {
                if (fieldmode)
                        in_height /= 2;
-               oi->pos_y /= 2;
+               pos_y /= 2;
                out_height /= 2;
 
                DSSDBG("adjusting for ilace: height %d, pos_y %d, "
                                "out_height %d\n",
-                               in_height, oi->pos_y, out_height);
+                               in_height, pos_y, out_height);
        }
 
        if (!dss_feat_color_mode_supported(plane, oi->color_mode))
@@ -2384,7 +2385,7 @@ int dispc_ovl_setup(enum omap_plane plane, struct omap_overlay_info *oi,
        DSSDBG("%d,%d %dx%d -> %dx%d\n", oi->pos_x, oi->pos_y, in_width,
                        in_height, out_width, out_height);
 
-       dispc_ovl_set_pos(plane, oi->pos_x, oi->pos_y);
+       dispc_ovl_set_pos(plane, oi->pos_x, pos_y);
 
        dispc_ovl_set_pic_size(plane, in_width, in_height);
 
index a14528bcfeabc45ebe7ea16c1e95975bd7ae42a1..e71a6f16fc4d713ac574210f0068a7017b092654 100644 (file)
@@ -444,7 +444,7 @@ void dispc_ovl_set_fifo_threshold(enum omap_plane plane, u32 low, u32 high);
 void dispc_ovl_compute_fifo_thresholds(enum omap_plane plane,
                u32 *fifo_low, u32 *fifo_high, bool use_fifomerge,
                bool manual_update);
-int dispc_ovl_setup(enum omap_plane plane, struct omap_overlay_info *oi,
+int dispc_ovl_setup(enum omap_plane plane, const struct omap_overlay_info *oi,
                bool replication, const struct omap_video_timings *mgr_timings);
 int dispc_ovl_enable(enum omap_plane plane, bool enable);
 void dispc_ovl_set_channel_out(enum omap_plane plane,