drm: atmel-hlcdc: Fix vertical scaling
commit d31ed3f05763644840c654a384eaefa94c097ba2 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: Jan Leupold <leupold@rsi-elektrotechnik.de>
Fixes: 1a396789f6
("drm: add Atmel HLCDC Display Controller support")
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
b214985cfa
commit
f487709720
@ -316,19 +316,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;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user