summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
diff options
context:
space:
mode:
authorZhan Liu <zhan.liu@amd.com>2021-07-08 00:51:52 -0400
committerAlex Deucher <alexander.deucher@amd.com>2021-07-08 17:47:28 -0400
commitc5b53d128130b39371303a01fbbe1d7d6f519ca5 (patch)
treeaba308f2c1e685720a90de56781e88f5ceef38e2 /drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
parent186c8a8585e1d3b4ca50a2ccf4a413d3ba7ff186 (diff)
downloadlinux-c5b53d128130b39371303a01fbbe1d7d6f519ca5.tar.gz
linux-c5b53d128130b39371303a01fbbe1d7d6f519ca5.tar.bz2
linux-c5b53d128130b39371303a01fbbe1d7d6f519ca5.zip
drm/amdgpu/display - only update eDP's backlight level when necessary
[Why] The original logic is to update eDP's backlight level on every amdgpu dm atomic commit, which causes excessive DMUB write. As a result, when playing game or moving window around, DMUB timeout and system lagging are observed. [How] We only need to update eDP's backlight level when current level doesn't match requested level. Signed-off-by: Zhan Liu <zhan.liu@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c')
-rw-r--r--drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index f69be1286348..5cdb0e75d36b 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -9191,7 +9191,7 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)
#if defined(CONFIG_BACKLIGHT_CLASS_DEVICE) || \
defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE)
/* restore the backlight level */
- if (dm->backlight_dev)
+ if (dm->backlight_dev && (amdgpu_dm_backlight_get_level(dm) != dm->brightness[0]))
amdgpu_dm_backlight_set_level(dm, dm->brightness[0]);
#endif
/*