drm/amd/display: Add null check to dml21_find_dc_pipes_for_plane
authorDillon Varone <dillon.varone@amd.com>
Tue, 4 Jun 2024 19:34:36 +0000 (15:34 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 14 Jun 2024 20:18:55 +0000 (16:18 -0400)
When a phantom stream is in the process of being deconstructed, there
could be pipes with no associated planes.  In that case, ignore the
phantom stream entirely when searching for associated pipes.

Cc: stable@vger.kernel.org
Reviewed-by: Alvin Lee <alvin.lee2@amd.com>
Acked-by: Hamza Mahfooz <hamza.mahfooz@amd.com>
Signed-off-by: Dillon Varone <dillon.varone@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dml2/dml21/dml21_utils.c

index 4e12810..4166332 100644 (file)
@@ -126,10 +126,15 @@ int dml21_find_dc_pipes_for_plane(const struct dc *in_dc,
        if (dc_phantom_stream && num_pipes > 0) {
                dc_phantom_stream_status = dml_ctx->config.callbacks.get_stream_status(context, dc_phantom_stream);
 
-               /* phantom plane will have same index as main */
-               dc_phantom_plane = dc_phantom_stream_status->plane_states[dc_plane_index];
+               if (dc_phantom_stream_status) {
+                       /* phantom plane will have same index as main */
+                       dc_phantom_plane = dc_phantom_stream_status->plane_states[dc_plane_index];
 
-               dml_ctx->config.callbacks.get_dpp_pipes_for_plane(dc_phantom_plane, &context->res_ctx, dc_phantom_pipes);
+                       if (dc_phantom_plane) {
+                               /* only care about phantom pipes if they contain the phantom plane */
+                               dml_ctx->config.callbacks.get_dpp_pipes_for_plane(dc_phantom_plane, &context->res_ctx, dc_phantom_pipes);
+                       }
+               }
        }
 
        return num_pipes;