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 961acbce3c1d..cfe0ae86f607 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -4689,6 +4689,11 @@ static int dm_update_planes_state(struct dc *dc, return ret; } +static bool +amdgpu_needs_modeset(struct drm_crtc_state *state) +{ + return drm_atomic_crtc_needs_modeset(state); +} static int amdgpu_dm_atomic_check(struct drm_device *dev, struct drm_atomic_state *state) @@ -4731,6 +4736,9 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev, } } else { for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) { + if (!amdgpu_needs_modeset(new_crtc_state)) + continue; + if (!new_crtc_state->enable) continue;