drm/amd/display: Mark DSC resource as unused after copying to the secondary ODM pipe
authorNikola Cornij <nikola.cornij@amd.com>
Wed, 3 Apr 2019 16:17:34 +0000 (12:17 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Sat, 22 Jun 2019 14:34:10 +0000 (09:34 -0500)
[why]
DSC resource has to be acquired before it can be used and simply copying
a reference to it is very likely to cause problems when accessing DSC.

[how]
Set DSC resource pointer to NULL to mark it as unused after primary pipe
resources were copied to the secondary ODM pipe.

Signed-off-by: Nikola Cornij <nikola.cornij@amd.com>
Reviewed-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c

index c9b7340..b23333b 100644 (file)
@@ -1427,6 +1427,9 @@ static bool dcn20_split_stream_for_combine(
        secondary_pipe->plane_res.xfm = pool->transforms[secondary_pipe->pipe_idx];
        secondary_pipe->plane_res.dpp = pool->dpps[secondary_pipe->pipe_idx];
        secondary_pipe->plane_res.mpcc_inst = pool->dpps[secondary_pipe->pipe_idx]->inst;
+#ifdef CONFIG_DRM_AMD_DC_DSC_SUPPORT
+       secondary_pipe->stream_res.dsc = NULL;
+#endif
        if (primary_pipe->bottom_pipe && primary_pipe->bottom_pipe != secondary_pipe) {
                ASSERT(!secondary_pipe->bottom_pipe);
                secondary_pipe->bottom_pipe = primary_pipe->bottom_pipe;