mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
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>
This commit is contained in:
@@ -38,6 +38,7 @@ static void populate_spltaps_from_taps(struct spl_taps *spl_scaling_quality,
|
||||
spl_scaling_quality->h_taps = scaling_quality->h_taps;
|
||||
spl_scaling_quality->v_taps_c = scaling_quality->v_taps_c;
|
||||
spl_scaling_quality->v_taps = scaling_quality->v_taps;
|
||||
spl_scaling_quality->integer_scaling = scaling_quality->integer_scaling;
|
||||
}
|
||||
static void populate_taps_from_spltaps(struct scaling_taps *scaling_quality,
|
||||
const struct spl_taps *spl_scaling_quality)
|
||||
|
||||
@@ -885,6 +885,18 @@ static bool spl_get_optimal_number_of_taps(
|
||||
spl_scratch->scl_data.viewport.width > max_downscale_src_width)
|
||||
return false;
|
||||
|
||||
/* Disable adaptive scaler and sharpener when integer scaling is enabled */
|
||||
if (spl_in->scaling_quality.integer_scaling) {
|
||||
spl_scratch->scl_data.taps.h_taps = 1;
|
||||
spl_scratch->scl_data.taps.v_taps = 1;
|
||||
spl_scratch->scl_data.taps.v_taps_c = 1;
|
||||
spl_scratch->scl_data.taps.h_taps_c = 1;
|
||||
*enable_easf_v = false;
|
||||
*enable_easf_h = false;
|
||||
*enable_isharp = false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Check if we are using EASF or not */
|
||||
skip_easf = enable_easf(spl_in, spl_scratch);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user