diff options
-rw-r--r-- | drivers/video/omap2/dss/dispc.c | 9 |
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 | ||