aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSherry Wang <[email protected]>2024-06-06 16:51:43 +0800
committerAlex Deucher <[email protected]>2024-07-01 16:06:53 -0400
commit3269d6fb7580e91313f40dffcff70c01cd3f0717 (patch)
treedddd941b99544a738bbd838abf1df9ab04d8c1de
parentbbd0d1c942cbac87404ed2bca0aa4f7907b8f47f (diff)
drm/amd/display: Skip unnecessary abm disable
[Why] We try to disable abm immediately when it's being gradually disabled, which causes backlight ramping being paused in the middle [How] Don't disable abm immediately if abm has been or is being disabled through set_abm_level path Reviewed-by: Anthony Koo <[email protected]> Signed-off-by: Jerry Zuo <[email protected]> Signed-off-by: Sherry Wang <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
-rw-r--r--drivers/gpu/drm/amd/display/dc/hwss/dcn21/dcn21_hwseq.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/hwss/dcn21/dcn21_hwseq.c b/drivers/gpu/drm/amd/display/dc/hwss/dcn21/dcn21_hwseq.c
index 3de65a9f0e6f..1ea95f8d4cbc 100644
--- a/drivers/gpu/drm/amd/display/dc/hwss/dcn21/dcn21_hwseq.c
+++ b/drivers/gpu/drm/amd/display/dc/hwss/dcn21/dcn21_hwseq.c
@@ -183,6 +183,12 @@ void dcn21_set_abm_immediate_disable(struct pipe_ctx *pipe_ctx)
struct panel_cntl *panel_cntl = pipe_ctx->stream->link->panel_cntl;
struct dmcu *dmcu = pipe_ctx->stream->ctx->dc->res_pool->dmcu;
+ // make a short term w/a for an issue that backlight ramping unexpectedly paused in the middle,
+ // will decouple backlight from ABM and redefine DMUB interface, then this w/a could be removed
+ if (pipe_ctx->stream->abm_level == 0 || pipe_ctx->stream->abm_level == ABM_LEVEL_IMMEDIATE_DISABLE) {
+ return;
+ }
+
if (dmcu) {
dce110_set_abm_immediate_disable(pipe_ctx);
return;