diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1530-drm-amd-display-Set-stream-mode_changed-when-connect.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/1530-drm-amd-display-Set-stream-mode_changed-when-connect.patch | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1530-drm-amd-display-Set-stream-mode_changed-when-connect.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1530-drm-amd-display-Set-stream-mode_changed-when-connect.patch new file mode 100644 index 00000000..827fa9e6 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1530-drm-amd-display-Set-stream-mode_changed-when-connect.patch @@ -0,0 +1,54 @@ +From 4c78ef5c6896ca2cb1baf3ea161db65bf85eeebb Mon Sep 17 00:00:00 2001 +From: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> +Date: Fri, 8 Feb 2019 13:21:05 -0500 +Subject: [PATCH 1530/2940] drm/amd/display: Set stream->mode_changed when + connectors change + +[Why] +The kms_plane@plane-position-covered-pipe-*-planes subtests can produce +a sequence of atomic commits such that neither active_changed nor +mode_changed but connectors_changed. + +When this happens we remove the old stream from the context and add +a new stream but the new stream doesn't have mode_changed=true set. + +This incorrect programming sequence causes CRC mismatches to occur in +the test. + +The stream->mode_changed value should be set whenever a new stream +is created. + +[How] +A new stream is created whenever drm_atomic_crtc_needs_modeset is true. +We previously covered the active_changed and mode_changed conditions +for the CRTC but connectors_changed is also checked within +drm_atomic_crtc_needs_modeset. + +So just use drm_atomic_crtc_needs_modeset directly to determine the +mode_changed flag. + +Change-Id: Ie2036dbefedd8c7fcad0b871ff7c3ab618534dca +Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> +Reviewed-by: Sun peng Li <Sunpeng.Li@amd.com> +Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> +--- + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +index 7fbba5d2df3a..05f44e33edea 100644 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +@@ -5043,8 +5043,7 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state, + static void amdgpu_dm_crtc_copy_transient_flags(struct drm_crtc_state *crtc_state, + struct dc_stream_state *stream_state) + { +- stream_state->mode_changed = +- crtc_state->mode_changed || crtc_state->active_changed; ++ stream_state->mode_changed = drm_atomic_crtc_needs_modeset(crtc_state); + } + + static int amdgpu_dm_atomic_commit(struct drm_device *dev, +-- +2.17.1 + |