Skip to content

Commit 4fd17f2

Browse files
Roman Lialexdeucher
authored andcommitted
drm/amd/display: Cap OLED brightness per max frame-average luminance
[Why] For OLED eDP the Display Manager uses max_cll value as a limit for brightness control. max_cll defines the content light luminance for individual pixel. Whereas max_fall defines frame-average level luminance. The user may not observe the difference in brightness in between max_fall and max_cll. That negatively impacts the user experience. [How] Use max_fall value instead of max_cll as a limit for brightness control. Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Acked-by: Hamza Mahfooz <hamza.mahfooz@amd.com> Signed-off-by: Roman Li <roman.li@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
1 parent c904e3a commit 4fd17f2

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2812,7 +2812,7 @@ static struct drm_mode_config_helper_funcs amdgpu_dm_mode_config_helperfuncs = {
28122812

28132813
static void update_connector_ext_caps(struct amdgpu_dm_connector *aconnector)
28142814
{
2815-
u32 max_cll, min_cll, max, min, q, r;
2815+
u32 max_avg, min_cll, max, min, q, r;
28162816
struct amdgpu_dm_backlight_caps *caps;
28172817
struct amdgpu_display_manager *dm;
28182818
struct drm_connector *conn_base;
@@ -2842,7 +2842,7 @@ static void update_connector_ext_caps(struct amdgpu_dm_connector *aconnector)
28422842
caps = &dm->backlight_caps[i];
28432843
caps->ext_caps = &aconnector->dc_link->dpcd_sink_ext_caps;
28442844
caps->aux_support = false;
2845-
max_cll = conn_base->hdr_sink_metadata.hdmi_type1.max_cll;
2845+
max_avg = conn_base->hdr_sink_metadata.hdmi_type1.max_fall;
28462846
min_cll = conn_base->hdr_sink_metadata.hdmi_type1.min_cll;
28472847

28482848
if (caps->ext_caps->bits.oled == 1 /*||
@@ -2870,8 +2870,8 @@ static void update_connector_ext_caps(struct amdgpu_dm_connector *aconnector)
28702870
* The results of the above expressions can be verified at
28712871
* pre_computed_values.
28722872
*/
2873-
q = max_cll >> 5;
2874-
r = max_cll % 32;
2873+
q = max_avg >> 5;
2874+
r = max_avg % 32;
28752875
max = (1 << q) * pre_computed_values[r];
28762876

28772877
// min luminance: maxLum * (CV/255)^2 / 100

0 commit comments

Comments
 (0)