Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Ville Syrjala <ville.syrjala@linux.intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: [Intel-gfx] [PATCH 4/4] drm/i915: Properly clear crtc state when disabling it fully, again
Date: Thu, 17 Feb 2022 12:32:21 +0200	[thread overview]
Message-ID: <20220217103221.10405-5-ville.syrjala@linux.intel.com> (raw)
In-Reply-To: <20220217103221.10405-1-ville.syrjala@linux.intel.com>

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Currently we just leave the old gunk lying around in the crtc
state when userspace asks us to fully disable the crtc. That
doesn't match what the state would be had we never even enabled
the crtc in the first place. So let's make this consistent and
call intel_crtc_prepare_cleared_state() for disabled crtcs as well
(excluding bigjoiner slaves of course which have had their state
copied from the master).

I actually already did this once in commit fff13e63a141 ("drm/i915:
Clear most of crtc state when disabling the crtc") but then
commit 19f65a3dbf75 ("drm/i915: Try to make bigjoiner work in atomic
check") undid it all :(

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 61adfcd7cf63..e160cee3240d 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -7627,9 +7627,8 @@ static int intel_atomic_check(struct drm_device *dev,
 			continue;
 		}
 
-		if (!new_crtc_state->uapi.enable) {
-			if (!intel_crtc_is_bigjoiner_slave(new_crtc_state))
-				intel_crtc_copy_uapi_to_hw_state_modeset(state, crtc);
+		if (intel_crtc_is_bigjoiner_slave(new_crtc_state)) {
+			drm_WARN_ON(&dev_priv->drm, new_crtc_state->uapi.enable);
 			continue;
 		}
 
@@ -7637,6 +7636,9 @@ static int intel_atomic_check(struct drm_device *dev,
 		if (ret)
 			goto fail;
 
+		if (!new_crtc_state->hw.enable)
+			continue;
+
 		ret = intel_modeset_pipe_config(state, new_crtc_state);
 		if (ret)
 			goto fail;
-- 
2.34.1


  parent reply	other threads:[~2022-02-17 10:32 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-17 10:32 [Intel-gfx] [PATCH 0/4] drm/i915: Fix disabled crtc state clearing, again Ville Syrjala
2022-02-17 10:32 ` [Intel-gfx] [PATCH 1/4] drm/i915: Dump the crtc hw state always Ville Syrjala
2022-02-22 22:38   ` Navare, Manasi
2022-02-17 10:32 ` [Intel-gfx] [PATCH 2/4] drm/i915: Dump hw.enable and pipe_mode Ville Syrjala
2022-02-22 22:41   ` Navare, Manasi
2022-02-22 22:54   ` Navare, Manasi
2022-02-17 10:32 ` [Intel-gfx] [PATCH 3/4] drm/i915: Remove odd any_ms=true assignment Ville Syrjala
2022-02-22 22:50   ` Navare, Manasi
2022-02-17 10:32 ` Ville Syrjala [this message]
2022-02-22 23:00   ` [Intel-gfx] [PATCH 4/4] drm/i915: Properly clear crtc state when disabling it fully, again Navare, Manasi
2022-02-17 20:55 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Fix disabled crtc state clearing, again Patchwork
2022-02-18  7:22 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220217103221.10405-5-ville.syrjala@linux.intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox