summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/display/dc/dc_spl_translate.c
diff options
context:
space:
mode:
authorSamson Tam <Samson.Tam@amd.com>2024-04-26 12:17:26 -0400
committerAlex Deucher <alexander.deucher@amd.com>2024-05-29 14:39:33 -0400
commit2998bccfa4197ff49bf70cbe14563d1417fe3ccf (patch)
treeb6f8c23477876d9972aa224e01811060c0977389 /drivers/gpu/drm/amd/display/dc/dc_spl_translate.c
parentc2edec1676ca40abf40d1d895765a6cf801decba (diff)
drm/amd/display: Enable ISHARP support for DCN401
[Why] Enable sharpener support for DCN401 [How] - Removed memcmp check that was preventing ISHARP from being enabled. - Add missing ISHARP register defines, masks, and writes. - Add programming of Blur and Scale coefficients. - Program FMT_MODE and NLDELTA registers based on LLS_PREF and pixel - format - Only enable ISHARP for YUV420 - Add disabling of ISHARP - Add debug flags and registry keys for debugging ISHARP. - Set default to medium level Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Samson Tam <Samson.Tam@amd.com> Acked-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/dc_spl_translate.c')
-rw-r--r--drivers/gpu/drm/amd/display/dc/dc_spl_translate.c29
1 files changed, 19 insertions, 10 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/dc_spl_translate.c b/drivers/gpu/drm/amd/display/dc/dc_spl_translate.c
index 6e37b166802b..bc760448a378 100644
--- a/drivers/gpu/drm/amd/display/dc/dc_spl_translate.c
+++ b/drivers/gpu/drm/amd/display/dc/dc_spl_translate.c
@@ -134,16 +134,25 @@ void translate_SPL_in_params_from_pipe_ctx(struct pipe_ctx *pipe_ctx, struct spl
spl_in->prefer_easf = false;
else if (pipe_ctx->stream->ctx->dc->debug.force_easf == 2)
spl_in->disable_easf = true;
- // Translate adaptive sharpening preference
- spl_in->adaptive_sharpness.enable = plane_state->adaptive_sharpness_en;
- if (plane_state->sharpnessX1000 == 0) {
- spl_in->adaptive_sharpness.enable = false;
- } else if (plane_state->sharpnessX1000 < 999) {
- spl_in->adaptive_sharpness.sharpness = SHARPNESS_LOW;
- } else if (plane_state->sharpnessX1000 < 1999) {
- spl_in->adaptive_sharpness.sharpness = SHARPNESS_MID;
- } else { // Any other value is high sharpness
- spl_in->adaptive_sharpness.sharpness = SHARPNESS_HIGH;
+ /* Translate adaptive sharpening preference */
+ if (pipe_ctx->stream->ctx->dc->debug.force_sharpness > 0) {
+ spl_in->adaptive_sharpness.enable = (pipe_ctx->stream->ctx->dc->debug.force_sharpness > 1) ? true : false;
+ if (pipe_ctx->stream->ctx->dc->debug.force_sharpness == 2)
+ spl_in->adaptive_sharpness.sharpness = SHARPNESS_LOW;
+ else if (pipe_ctx->stream->ctx->dc->debug.force_sharpness == 3)
+ spl_in->adaptive_sharpness.sharpness = SHARPNESS_MID;
+ else if (pipe_ctx->stream->ctx->dc->debug.force_sharpness >= 4)
+ spl_in->adaptive_sharpness.sharpness = SHARPNESS_HIGH;
+ } else {
+ spl_in->adaptive_sharpness.enable = plane_state->adaptive_sharpness_en;
+ if (plane_state->sharpnessX1000 == 0)
+ spl_in->adaptive_sharpness.enable = false;
+ else if (plane_state->sharpnessX1000 < 999)
+ spl_in->adaptive_sharpness.sharpness = SHARPNESS_LOW;
+ else if (plane_state->sharpnessX1000 < 1999)
+ spl_in->adaptive_sharpness.sharpness = SHARPNESS_MID;
+ else // Any other value is high sharpness
+ spl_in->adaptive_sharpness.sharpness = SHARPNESS_HIGH;
}
// Translate linear light scaling preference
if (pipe_ctx->stream->ctx->dc->debug.force_lls > 0)