Commit fff13e63 authored by Ville Syrjälä's avatar Ville Syrjälä

drm/i915: Clear most of crtc state when disabling the crtc

Currently we don't call intel_crtc_prepare_cleared_state() for crtcs
that are going to be entirely disabled (uapi.enable==false). That
means such crtcs will leave stale junk lying around in their states
and we have to sprinkle hw.enable checks all over before we can
look at the states. Let's change that a bit so that we aways do
the state clearing, even for fully disabled crtcs.

Note that we still keep some parts of the old state (see
intel_crtc_prepare_cleared_state() for the details) so probably
can't trust things 100% when hw.enable==false. But at least there's
less chance now that we end up looking at stale junk.
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200115190813.17971-2-ville.syrjala@linux.intel.comReviewed-by: default avatarJosé Roberto de Souza <jose.souza@intel.com>
parent d0eed154
...@@ -14607,15 +14607,13 @@ static int intel_atomic_check(struct drm_device *dev, ...@@ -14607,15 +14607,13 @@ static int intel_atomic_check(struct drm_device *dev,
continue; continue;
} }
if (!new_crtc_state->uapi.enable) {
intel_crtc_copy_uapi_to_hw_state(new_crtc_state);
continue;
}
ret = intel_crtc_prepare_cleared_state(new_crtc_state); ret = intel_crtc_prepare_cleared_state(new_crtc_state);
if (ret) if (ret)
goto fail; goto fail;
if (!new_crtc_state->hw.enable)
continue;
ret = intel_modeset_pipe_config(new_crtc_state); ret = intel_modeset_pipe_config(new_crtc_state);
if (ret) if (ret)
goto fail; goto fail;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment