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

Configure Feed

Select the types of activity you want to include in your feed.

drm/amd/display: Add support for 2nd sharpening range

[Why & How]
Add support for 2nd sharpening range for cases where we want
override existing DCN sharpening range

Reviewed-by: Ilya Bakoulin <ilya.bakoulin@amd.com>
Signed-off-by: Samson Tam <Samson.Tam@amd.com>
Signed-off-by: Wayne Lin <wayne.lin@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
dbb767be a4d04bc9

+37 -9
+6
drivers/gpu/drm/amd/display/dc/dc.h
··· 46 46 47 47 #include "dmub/inc/dmub_cmd.h" 48 48 49 + #include "sspl/dc_spl_types.h" 50 + 49 51 struct abm_save_restore; 50 52 51 53 /* forward declaration */ ··· 514 512 bool set_pipe_unlock_order; 515 513 bool enable_dpia_pre_training; 516 514 bool unify_link_enc_assignment; 515 + struct spl_sharpness_range dcn_sharpness_range; 516 + struct spl_sharpness_range dcn_override_sharpness_range; 517 517 }; 518 518 519 519 enum visual_confirm { ··· 1424 1420 int sharpness_level; 1425 1421 enum linear_light_scaling linear_light_scaling; 1426 1422 unsigned int sdr_white_level_nits; 1423 + struct spl_sharpness_range sharpness_range; 1424 + enum sharpness_range_source sharpness_source; 1427 1425 }; 1428 1426 1429 1427 struct dc_plane_info {
+10 -9
drivers/gpu/drm/amd/display/dc/dc_spl_translate.c
··· 156 156 spl_in->adaptive_sharpness.enable = true; 157 157 spl_in->adaptive_sharpness.sharpness_level = 0; 158 158 } else if (sharpness_setting == SHARPNESS_CUSTOM) { 159 - spl_in->adaptive_sharpness.sharpness_range.sdr_rgb_min = 0; 160 - spl_in->adaptive_sharpness.sharpness_range.sdr_rgb_max = 1750; 161 - spl_in->adaptive_sharpness.sharpness_range.sdr_rgb_mid = 750; 162 - spl_in->adaptive_sharpness.sharpness_range.sdr_yuv_min = 0; 163 - spl_in->adaptive_sharpness.sharpness_range.sdr_yuv_max = 3500; 164 - spl_in->adaptive_sharpness.sharpness_range.sdr_yuv_mid = 1500; 165 - spl_in->adaptive_sharpness.sharpness_range.hdr_rgb_min = 0; 166 - spl_in->adaptive_sharpness.sharpness_range.hdr_rgb_max = 2750; 167 - spl_in->adaptive_sharpness.sharpness_range.hdr_rgb_mid = 1500; 159 + /* SAT: read harpness_range from dc_plane_state */ 160 + spl_in->adaptive_sharpness.sharpness_range.sdr_rgb_min = plane_state->sharpness_range.sdr_rgb_min; 161 + spl_in->adaptive_sharpness.sharpness_range.sdr_rgb_max = plane_state->sharpness_range.sdr_rgb_max; 162 + spl_in->adaptive_sharpness.sharpness_range.sdr_rgb_mid = plane_state->sharpness_range.sdr_rgb_mid; 163 + spl_in->adaptive_sharpness.sharpness_range.sdr_yuv_min = plane_state->sharpness_range.sdr_yuv_min; 164 + spl_in->adaptive_sharpness.sharpness_range.sdr_yuv_max = plane_state->sharpness_range.sdr_yuv_max; 165 + spl_in->adaptive_sharpness.sharpness_range.sdr_yuv_mid = plane_state->sharpness_range.sdr_yuv_mid; 166 + spl_in->adaptive_sharpness.sharpness_range.hdr_rgb_min = plane_state->sharpness_range.hdr_rgb_min; 167 + spl_in->adaptive_sharpness.sharpness_range.hdr_rgb_max = plane_state->sharpness_range.hdr_rgb_max; 168 + spl_in->adaptive_sharpness.sharpness_range.hdr_rgb_mid = plane_state->sharpness_range.hdr_rgb_mid; 168 169 169 170 if (force_sharpness_level > 0) { 170 171 if (force_sharpness_level > 10)
+21
drivers/gpu/drm/amd/display/dc/resource/dcn401/dcn401_resource.c
··· 1959 1959 dc->caps.color.mpc.ocsc = 1; 1960 1960 dc->config.use_spl = true; 1961 1961 dc->config.prefer_easf = true; 1962 + 1963 + dc->config.dcn_sharpness_range.sdr_rgb_min = 0; 1964 + dc->config.dcn_sharpness_range.sdr_rgb_max = 1750; 1965 + dc->config.dcn_sharpness_range.sdr_rgb_mid = 750; 1966 + dc->config.dcn_sharpness_range.sdr_yuv_min = 0; 1967 + dc->config.dcn_sharpness_range.sdr_yuv_max = 3500; 1968 + dc->config.dcn_sharpness_range.sdr_yuv_mid = 1500; 1969 + dc->config.dcn_sharpness_range.hdr_rgb_min = 0; 1970 + dc->config.dcn_sharpness_range.hdr_rgb_max = 2750; 1971 + dc->config.dcn_sharpness_range.hdr_rgb_mid = 1500; 1972 + 1973 + dc->config.dcn_override_sharpness_range.sdr_rgb_min = 0; 1974 + dc->config.dcn_override_sharpness_range.sdr_rgb_max = 3250; 1975 + dc->config.dcn_override_sharpness_range.sdr_rgb_mid = 1250; 1976 + dc->config.dcn_override_sharpness_range.sdr_yuv_min = 0; 1977 + dc->config.dcn_override_sharpness_range.sdr_yuv_max = 3500; 1978 + dc->config.dcn_override_sharpness_range.sdr_yuv_mid = 1500; 1979 + dc->config.dcn_override_sharpness_range.hdr_rgb_min = 0; 1980 + dc->config.dcn_override_sharpness_range.hdr_rgb_max = 2750; 1981 + dc->config.dcn_override_sharpness_range.hdr_rgb_mid = 1500; 1982 + 1962 1983 dc->config.dc_mode_clk_limit_support = true; 1963 1984 dc->config.enable_windowed_mpo_odm = true; 1964 1985 dc->config.set_pipe_unlock_order = true; /* Need to ensure DET gets freed before allocating */