[Intel-gfx] [PATCH] drm/i915: Fix regression with crtc disable ordering
Manasi Navare
manasi.d.navare at intel.com
Fri Aug 30 21:26:42 UTC 2019
Pushed to dinq, thanks for the patch and reviews
Manasi
On Fri, Aug 30, 2019 at 12:16:44PM +0200, Maarten Lankhorst wrote:
> When we moved the code to disable crtc's to a separate patch,
> we forgot to ensure that for_each_oldnew_intel_crtc_in_state_reverse()
> was moved as well.
>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> Fixes: 66d9cec8a6c9 ("drm/i915/display: Move the commit_tail() disable sequence to separate function")
> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> Cc: Manasi Navare <manasi.d.navare at intel.com>
> Cc: José Roberto de Souza <jose.souza at intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_display.c | 21 ++++++++++----------
> 1 file changed, 11 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index b38d842ff6ec..e661e2099118 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -13784,7 +13784,15 @@ static void intel_commit_modeset_disables(struct intel_atomic_state *state)
> struct intel_crtc *crtc;
> int i;
>
> - for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) {
> + /*
> + * Disable CRTC/pipes in reverse order because some features(MST in
> + * TGL+) requires master and slave relationship between pipes, so it
> + * should always pick the lowest pipe as master as it will be enabled
> + * first and disable in the reverse order so the master will be the
> + * last one to be disabled.
> + */
> + for_each_oldnew_intel_crtc_in_state_reverse(state, crtc, old_crtc_state,
> + new_crtc_state, i) {
> if (!needs_modeset(new_crtc_state))
> continue;
>
> @@ -13963,15 +13971,8 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state)
> if (state->modeset)
> wakeref = intel_display_power_get(dev_priv, POWER_DOMAIN_MODESET);
>
> - /*
> - * Disable CRTC/pipes in reverse order because some features(MST in
> - * TGL+) requires master and slave relationship between pipes, so it
> - * should always pick the lowest pipe as master as it will be enabled
> - * first and disable in the reverse order so the master will be the
> - * last one to be disabled.
> - */
> - for_each_oldnew_intel_crtc_in_state_reverse(state, crtc, old_crtc_state,
> - new_crtc_state, i) {
> + for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
> + new_crtc_state, i) {
> if (needs_modeset(new_crtc_state) ||
> new_crtc_state->update_pipe) {
>
> --
> 2.20.1
>
More information about the Intel-gfx
mailing list