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

I want to use the crtc_state->inherited flag to clean up some
of the early SAGV handling. To make that work nicely I need to
flag even the inactive crtcs as "inherited".
Since we can't expect user space to perform any real commits
on inactive crtcs we'll clear the flag already during
initial_commit().

Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c  |  3 +++
 .../drm/i915/display/intel_modeset_setup.c    | 22 +++++++++----------
 2 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index 3afb85fe8536..1d7a396bc4ea 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -8081,6 +8081,9 @@ int intel_initial_commit(struct intel_display *display)
                        goto out;
                }
 
+               if (!crtc_state->hw.active)
+                       crtc_state->inherited = false;
+
                if (crtc_state->hw.active) {
                        struct intel_encoder *encoder;
 
diff --git a/drivers/gpu/drm/i915/display/intel_modeset_setup.c 
b/drivers/gpu/drm/i915/display/intel_modeset_setup.c
index 312b21b1ab59..e495f717b168 100644
--- a/drivers/gpu/drm/i915/display/intel_modeset_setup.c
+++ b/drivers/gpu/drm/i915/display/intel_modeset_setup.c
@@ -821,18 +821,18 @@ static void intel_modeset_readout_hw_state(struct 
drm_i915_private *i915)
                        to_intel_crtc_state(crtc->base.state);
                struct intel_plane *plane;
 
-               if (crtc_state->hw.active) {
-                       /*
-                        * The initial mode needs to be set in order to keep
-                        * the atomic core happy. It wants a valid mode if the
-                        * crtc's enabled, so we do the above call.
-                        *
-                        * But we don't set all the derived state fully, hence
-                        * set a flag to indicate that a full recalculation is
-                        * needed on the next commit.
-                        */
-                       crtc_state->inherited = true;
+               /*
+                * The initial mode needs to be set in order to keep
+                * the atomic core happy. It wants a valid mode if the
+                * crtc's enabled, so we do the above call.
+                *
+                * But we don't set all the derived state fully, hence
+                * set a flag to indicate that a full recalculation is
+                * needed on the next commit.
+                */
+               crtc_state->inherited = true;
 
+               if (crtc_state->hw.active) {
                        intel_crtc_update_active_timings(crtc_state,
                                                         
crtc_state->vrr.enable);
 
-- 
2.45.3

Reply via email to