Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amd/display: disable adaptive scaler and sharpener when integer scaling is enabled

[Why & How]
When integer scaling is enabled, set taps to 1 and disable adaptive
scaler and sharpener.

Reviewed-by: Jun Lei <jun.lei@amd.com>
Signed-off-by: Samson Tam <Samson.Tam@amd.com>
Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Samson Tam and committed by
Alex Deucher
559dc44f 9dad21f9

+13
+1
drivers/gpu/drm/amd/display/dc/dc_spl_translate.c
··· 38 38 spl_scaling_quality->h_taps = scaling_quality->h_taps; 39 39 spl_scaling_quality->v_taps_c = scaling_quality->v_taps_c; 40 40 spl_scaling_quality->v_taps = scaling_quality->v_taps; 41 + spl_scaling_quality->integer_scaling = scaling_quality->integer_scaling; 41 42 } 42 43 static void populate_taps_from_spltaps(struct scaling_taps *scaling_quality, 43 44 const struct spl_taps *spl_scaling_quality)
+12
drivers/gpu/drm/amd/display/dc/spl/dc_spl.c
··· 885 885 spl_scratch->scl_data.viewport.width > max_downscale_src_width) 886 886 return false; 887 887 888 + /* Disable adaptive scaler and sharpener when integer scaling is enabled */ 889 + if (spl_in->scaling_quality.integer_scaling) { 890 + spl_scratch->scl_data.taps.h_taps = 1; 891 + spl_scratch->scl_data.taps.v_taps = 1; 892 + spl_scratch->scl_data.taps.v_taps_c = 1; 893 + spl_scratch->scl_data.taps.h_taps_c = 1; 894 + *enable_easf_v = false; 895 + *enable_easf_h = false; 896 + *enable_isharp = false; 897 + return true; 898 + } 899 + 888 900 /* Check if we are using EASF or not */ 889 901 skip_easf = enable_easf(spl_in, spl_scratch); 890 902