aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2012-10-19 08:46:30 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2012-11-27 05:47:25 -0500
commit74e164588ec0b0c570f5525d10800f54342833b1 (patch)
treeb57adee7382272f87af6e8ea28a478fa705f6fb5 /drivers/video/omap2
parent0c6921de3710465ca35179b6e327e8b67b9ffaf7 (diff)
OMAPDSS: DISPC: pass pclk & lclk to dispc_ovl_calc_scaling
In order to make the scaling calculations independent of the current hardware configuration (e.g. which manager is connected to this output), we need to change the calc funcs to get all the variables needed for the calculations via parameters. This patch changes dispc_ovl_calc_scaling to get pclk and lclk as parameters. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video/omap2')
-rw-r--r--drivers/video/omap2/dss/dispc.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
index 7bcc5f0d56eb..ce594a1d860c 100644
--- a/drivers/video/omap2/dss/dispc.c
+++ b/drivers/video/omap2/dss/dispc.c
@@ -2284,7 +2284,7 @@ static int dispc_ovl_calc_scaling_44xx(unsigned long pclk, unsigned long lclk,
2284 return 0; 2284 return 0;
2285} 2285}
2286 2286
2287static int dispc_ovl_calc_scaling(enum omap_plane plane, 2287static int dispc_ovl_calc_scaling(unsigned long pclk, unsigned long lclk,
2288 enum omap_overlay_caps caps, 2288 enum omap_overlay_caps caps,
2289 const struct omap_video_timings *mgr_timings, 2289 const struct omap_video_timings *mgr_timings,
2290 u16 width, u16 height, u16 out_width, u16 out_height, 2290 u16 width, u16 height, u16 out_width, u16 out_height,
@@ -2296,8 +2296,6 @@ static int dispc_ovl_calc_scaling(enum omap_plane plane,
2296 const int max_decim_limit = 16; 2296 const int max_decim_limit = 16;
2297 unsigned long core_clk = 0; 2297 unsigned long core_clk = 0;
2298 int decim_x, decim_y, ret; 2298 int decim_x, decim_y, ret;
2299 unsigned long pclk = dispc_plane_pclk_rate(plane);
2300 unsigned long lclk = dispc_plane_lclk_rate(plane);
2301 2299
2302 if (width == out_width && height == out_height) 2300 if (width == out_width && height == out_height)
2303 return 0; 2301 return 0;
@@ -2305,7 +2303,7 @@ static int dispc_ovl_calc_scaling(enum omap_plane plane,
2305 if ((caps & OMAP_DSS_OVL_CAP_SCALE) == 0) 2303 if ((caps & OMAP_DSS_OVL_CAP_SCALE) == 0)
2306 return -EINVAL; 2304 return -EINVAL;
2307 2305
2308 if (plane == OMAP_DSS_WB) { 2306 if (mem_to_mem) {
2309 *x_predecim = *y_predecim = 1; 2307 *x_predecim = *y_predecim = 1;
2310 } else { 2308 } else {
2311 *x_predecim = max_decim_limit; 2309 *x_predecim = max_decim_limit;
@@ -2377,6 +2375,8 @@ static int dispc_ovl_setup_common(enum omap_plane plane,
2377 u16 in_width = width; 2375 u16 in_width = width;
2378 int x_predecim = 1, y_predecim = 1; 2376 int x_predecim = 1, y_predecim = 1;
2379 bool ilace = mgr_timings->interlace; 2377 bool ilace = mgr_timings->interlace;
2378 unsigned long pclk = dispc_plane_pclk_rate(plane);
2379 unsigned long lclk = dispc_plane_lclk_rate(plane);
2380 2380
2381 if (paddr == 0) 2381 if (paddr == 0)
2382 return -EINVAL; 2382 return -EINVAL;
@@ -2401,7 +2401,7 @@ static int dispc_ovl_setup_common(enum omap_plane plane,
2401 if (!dss_feat_color_mode_supported(plane, color_mode)) 2401 if (!dss_feat_color_mode_supported(plane, color_mode))
2402 return -EINVAL; 2402 return -EINVAL;
2403 2403
2404 r = dispc_ovl_calc_scaling(plane, caps, mgr_timings, in_width, 2404 r = dispc_ovl_calc_scaling(pclk, lclk, caps, mgr_timings, in_width,
2405 in_height, out_width, out_height, color_mode, 2405 in_height, out_width, out_height, color_mode,
2406 &five_taps, &x_predecim, &y_predecim, pos_x, 2406 &five_taps, &x_predecim, &y_predecim, pos_x,
2407 rotation_type, mem_to_mem); 2407 rotation_type, mem_to_mem);