aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/dss/dispc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/omap2/dss/dispc.c')
-rw-r--r--drivers/video/omap2/dss/dispc.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
index e52c57789383..2137d2a2cc5d 100644
--- a/drivers/video/omap2/dss/dispc.c
+++ b/drivers/video/omap2/dss/dispc.c
@@ -2195,7 +2195,8 @@ static int dispc_ovl_calc_scaling(enum omap_plane plane,
2195 const struct omap_video_timings *mgr_timings, 2195 const struct omap_video_timings *mgr_timings,
2196 u16 width, u16 height, u16 out_width, u16 out_height, 2196 u16 width, u16 height, u16 out_width, u16 out_height,
2197 enum omap_color_mode color_mode, bool *five_taps, 2197 enum omap_color_mode color_mode, bool *five_taps,
2198 int *x_predecim, int *y_predecim, u16 pos_x) 2198 int *x_predecim, int *y_predecim, u16 pos_x,
2199 enum omap_dss_rotation_type rotation_type)
2199{ 2200{
2200 struct omap_overlay *ovl = omap_dss_get_overlay(plane); 2201 struct omap_overlay *ovl = omap_dss_get_overlay(plane);
2201 const int maxdownscale = dss_feat_get_param_max(FEAT_PARAM_DOWNSCALE); 2202 const int maxdownscale = dss_feat_get_param_max(FEAT_PARAM_DOWNSCALE);
@@ -2210,7 +2211,8 @@ static int dispc_ovl_calc_scaling(enum omap_plane plane,
2210 return -EINVAL; 2211 return -EINVAL;
2211 2212
2212 *x_predecim = max_decim_limit; 2213 *x_predecim = max_decim_limit;
2213 *y_predecim = max_decim_limit; 2214 *y_predecim = (rotation_type == OMAP_DSS_ROT_TILER &&
2215 dss_has_feature(FEAT_BURST_2D)) ? 2 : max_decim_limit;
2214 2216
2215 if (color_mode == OMAP_DSS_COLOR_CLUT1 || 2217 if (color_mode == OMAP_DSS_COLOR_CLUT1 ||
2216 color_mode == OMAP_DSS_COLOR_CLUT2 || 2218 color_mode == OMAP_DSS_COLOR_CLUT2 ||
@@ -2306,7 +2308,8 @@ int dispc_ovl_setup(enum omap_plane plane, struct omap_overlay_info *oi,
2306 2308
2307 r = dispc_ovl_calc_scaling(plane, channel, mgr_timings, in_width, 2309 r = dispc_ovl_calc_scaling(plane, channel, mgr_timings, in_width,
2308 in_height, out_width, out_height, oi->color_mode, 2310 in_height, out_width, out_height, oi->color_mode,
2309 &five_taps, &x_predecim, &y_predecim, oi->pos_x); 2311 &five_taps, &x_predecim, &y_predecim, oi->pos_x,
2312 oi->rotation_type);
2310 if (r) 2313 if (r)
2311 return r; 2314 return r;
2312 2315