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: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200115190813.17971-2-ville.syrjala@linux.intel.com Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
This commit is contained in:
Родитель
d0eed1545f
Коммит
fff13e63a1
|
@ -14607,15 +14607,13 @@ static int intel_atomic_check(struct drm_device *dev,
|
|||
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);
|
||||
if (ret)
|
||||
goto fail;
|
||||
|
||||
if (!new_crtc_state->hw.enable)
|
||||
continue;
|
||||
|
||||
ret = intel_modeset_pipe_config(new_crtc_state);
|
||||
if (ret)
|
||||
goto fail;
|
||||
|
|
Загрузка…
Ссылка в новой задаче