Commit 7e839652 authored by Jan Leupold's avatar Jan Leupold Committed by Greg Kroah-Hartman

drm: atmel-hlcdc: Fix vertical scaling

commit d31ed3f0 upstream.

The code is applying the same scaling for the X and Y components,
thus making the scaling feature only functional when both components
have the same scaling factor.

Do the s/_w/_h/ replacement where appropriate to fix vertical scaling.
Signed-off-by: default avatarJan Leupold <leupold@rsi-elektrotechnik.de>
Fixes: 1a396789 ("drm: add Atmel HLCDC Display Controller support")
Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent f52d5286
...@@ -320,19 +320,19 @@ atmel_hlcdc_plane_update_pos_and_size(struct atmel_hlcdc_plane *plane, ...@@ -320,19 +320,19 @@ atmel_hlcdc_plane_update_pos_and_size(struct atmel_hlcdc_plane *plane,
u32 *coeff_tab = heo_upscaling_ycoef; u32 *coeff_tab = heo_upscaling_ycoef;
u32 max_memsize; u32 max_memsize;
if (state->crtc_w < state->src_w) if (state->crtc_h < state->src_h)
coeff_tab = heo_downscaling_ycoef; coeff_tab = heo_downscaling_ycoef;
for (i = 0; i < ARRAY_SIZE(heo_upscaling_ycoef); i++) for (i = 0; i < ARRAY_SIZE(heo_upscaling_ycoef); i++)
atmel_hlcdc_layer_update_cfg(&plane->layer, atmel_hlcdc_layer_update_cfg(&plane->layer,
33 + i, 33 + i,
0xffffffff, 0xffffffff,
coeff_tab[i]); coeff_tab[i]);
factor = ((8 * 256 * state->src_w) - (256 * 4)) / factor = ((8 * 256 * state->src_h) - (256 * 4)) /
state->crtc_w; state->crtc_h;
factor++; factor++;
max_memsize = ((factor * state->crtc_w) + (256 * 4)) / max_memsize = ((factor * state->crtc_h) + (256 * 4)) /
2048; 2048;
if (max_memsize > state->src_w) if (max_memsize > state->src_h)
factor--; factor--;
factor_reg |= (factor << 16) | 0x80000000; factor_reg |= (factor << 16) | 0x80000000;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment