drm/amd/display: Fix to be able to stop crc calculation
authorWayne Lin <Wayne.Lin@amd.com>
Tue, 24 Nov 2020 11:57:03 +0000 (19:57 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 14 Jan 2021 19:06:43 +0000 (14:06 -0500)
[Why]
Find out when we try to disable CRC calculation, crc generation is still
enabled. Main reason is that dc_stream_configure_crc() will never get
called when the source is AMDGPU_DM_PIPE_CRC_SOURCE_NONE.

[How]
Add checking condition that when source is
AMDGPU_DM_PIPE_CRC_SOURCE_NONE, we should also call
dc_stream_configure_crc() to disable crc calculation.

Acked-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: Wayne Lin <Wayne.Lin@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c

index c29dc11..66cb873 100644 (file)
@@ -113,7 +113,7 @@ int amdgpu_dm_crtc_configure_crc_source(struct drm_crtc *crtc,
        mutex_lock(&adev->dm.dc_lock);
 
        /* Enable CRTC CRC generation if necessary. */
-       if (dm_is_crc_source_crtc(source)) {
+       if (dm_is_crc_source_crtc(source) || source == AMDGPU_DM_PIPE_CRC_SOURCE_NONE) {
                if (!dc_stream_configure_crc(stream_state->ctx->dc,
                                             stream_state, NULL, enable, enable)) {
                        ret = -EINVAL;