diff options
author | Nicholas Kazlauskas | 2019-02-08 19:21:05 +0100 |
---|---|---|
committer | Alex Deucher | 2019-03-19 21:04:02 +0100 |
commit | b9952f93cd2cf5fca82b06a8179c0f5f7b769e83 (patch) | |
tree | 6eb289eebe4c1ca5ea7f09b572637d9326c99878 /drivers/gpu/drm/amd/display/amdgpu_dm | |
parent | drm/amd/display: Respect aux return values (diff) | |
download | kernel-qcow2-linux-b9952f93cd2cf5fca82b06a8179c0f5f7b769e83.tar.gz kernel-qcow2-linux-b9952f93cd2cf5fca82b06a8179c0f5f7b769e83.tar.xz kernel-qcow2-linux-b9952f93cd2cf5fca82b06a8179c0f5f7b769e83.zip |
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.
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>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/amdgpu_dm')
-rw-r--r-- | drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 |
1 files changed, 1 insertions, 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 f9b57d32636b..b7cc14683065 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -4922,8 +4922,7 @@ cleanup: 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, |