On 7/10/2025 4:25 PM, [email protected] wrote:
From: Charlene Liu <[email protected]>

[why]
dc has some code out of sync:
dc_commit_updates_for_stream handles v1/v2/v3,
but dc_update_planes_and_stream makes v1 asic to use v2.

as a reression fix: limit clear_update_flags to dcn32 or newer asic.

regression

need to follow up that v1 asic using v2 issue.

Reviewed-by: Syed Hassan <[email protected]>
Signed-off-by: Charlene Liu <[email protected]>
Signed-off-by: Ivan Lipski <[email protected]>

There is a public issue on this regression, we should add the following tags so it closes and backports to fix it.

Cc: [email protected]
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4129
Fixes: 7671f62c10f2 ("drm/amd/display: Clear update flags after update has been applied")

Thanks!

---
  drivers/gpu/drm/amd/display/dc/core/dc.c | 5 ++---
  1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c 
b/drivers/gpu/drm/amd/display/dc/core/dc.c
index f37ed24b2430..cee45fe7cec9 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
@@ -5443,8 +5443,7 @@ bool dc_update_planes_and_stream(struct dc *dc,
        else
                ret = update_planes_and_stream_v2(dc, srf_updates,
                        surface_count, stream, stream_update);
-
-       if (ret)
+       if (ret && dc->ctx->dce_version >= DCN_VERSION_3_2)
                clear_update_flags(srf_updates, surface_count, stream);
return ret;
@@ -5475,7 +5474,7 @@ void dc_commit_updates_for_stream(struct dc *dc,
                ret = update_planes_and_stream_v1(dc, srf_updates, 
surface_count, stream,
                                stream_update, state);
- if (ret)
+       if (ret && dc->ctx->dce_version >= DCN_VERSION_3_2)
                clear_update_flags(srf_updates, surface_count, stream);
  }

Reply via email to