]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amd/display: Avoid DPMS-on for phantom stream
authorIlya Bakoulin <Ilya.Bakoulin@amd.com>
Tue, 19 May 2026 20:20:39 +0000 (16:20 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 3 Jun 2026 17:34:31 +0000 (13:34 -0400)
[Why & How]
Calling dc_update_planes_and_stream separately for stream and its
phantom stream causes a NULL pointer dereference, since the phantom is
destroyed on the first call.

Skip the call for phantom streams.

Reviewed-by: Alvin Lee <alvin.lee2@amd.com>
Signed-off-by: Ilya Bakoulin <Ilya.Bakoulin@amd.com>
Signed-off-by: Ray Wu <ray.wu@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c

index ae6ed3a52d53bcee50693fa11030f52c12a1dc1e..d3172dbdcdf0c5d508984bea6f9133757cc7c3a0 100644 (file)
@@ -145,6 +145,8 @@ static void dp_retrain_link_dp_test(struct dc_link *link,
        // Set DPMS on with stream update
        // Cache all streams on current link since dc_update_planes_and_stream might kill current_state
        for (i = 0; i < MAX_PIPES; i++) {
+               if (state->streams[i] && state->streams[i]->is_phantom)
+                       continue;
                if (state->streams[i] && state->streams[i]->link && state->streams[i]->link == link)
                        streams_on_link[num_streams_on_link++] = state->streams[i];
        }