]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.1-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 9 Aug 2023 09:15:29 +0000 (11:15 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 9 Aug 2023 09:15:29 +0000 (11:15 +0200)
added patches:
revert-drm-i915-disable-dc-states-for-all-commits.patch

queue-6.1/revert-drm-i915-disable-dc-states-for-all-commits.patch [new file with mode: 0644]
queue-6.1/series

diff --git a/queue-6.1/revert-drm-i915-disable-dc-states-for-all-commits.patch b/queue-6.1/revert-drm-i915-disable-dc-states-for-all-commits.patch
new file mode 100644 (file)
index 0000000..9c8ce72
--- /dev/null
@@ -0,0 +1,79 @@
+From a9a14d4ac6e351f7fc39e81fbeb398936a0e0079 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Wed, 9 Aug 2023 11:13:22 +0200
+Subject: Revert "drm/i915: Disable DC states for all commits"
+
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+This reverts commit 0fc6fea41c7122aa5f2088117f50144b507e13d7 which is
+commit a2b6e99d8a623544f3bdccd28ee35b9c1b00daa5 upstream.
+
+It is reported to cause regression issues, so it should be reverted from
+the 6.1.y tree for now.
+
+Reported-by: Thorsten Leemhuis <regressions@leemhuis.info>
+Link: https://lore.kernel.org/r/f0870e8f-0c66-57fd-f95d-18d014a11939@leemhuis.info
+Link: https://gitlab.freedesktop.org/drm/intel/-/issues/8419
+Cc: Manasi Navare <navaremanasi@google.com>
+Cc: Drew Davenport <ddavenport@chromium.org>
+Cc: Jouni Högander <jouni.hogander@intel.com>
+Cc: Imre Deak <imre.deak@intel.com>
+Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
+Cc: Jani Nikula <jani.nikula@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/i915/display/intel_display.c |   28 ++-------------------------
+ 1 file changed, 3 insertions(+), 25 deletions(-)
+
+--- a/drivers/gpu/drm/i915/display/intel_display.c
++++ b/drivers/gpu/drm/i915/display/intel_display.c
+@@ -7123,8 +7123,6 @@ static void intel_update_crtc(struct int
+       intel_fbc_update(state, crtc);
+-      drm_WARN_ON(&i915->drm, !intel_display_power_is_enabled(i915, POWER_DOMAIN_DC_OFF));
+-
+       if (!modeset &&
+           (new_crtc_state->uapi.color_mgmt_changed ||
+            new_crtc_state->update_pipe))
+@@ -7501,28 +7499,8 @@ static void intel_atomic_commit_tail(str
+       drm_atomic_helper_wait_for_dependencies(&state->base);
+       drm_dp_mst_atomic_wait_for_dependencies(&state->base);
+-      /*
+-       * During full modesets we write a lot of registers, wait
+-       * for PLLs, etc. Doing that while DC states are enabled
+-       * is not a good idea.
+-       *
+-       * During fastsets and other updates we also need to
+-       * disable DC states due to the following scenario:
+-       * 1. DC5 exit and PSR exit happen
+-       * 2. Some or all _noarm() registers are written
+-       * 3. Due to some long delay PSR is re-entered
+-       * 4. DC5 entry -> DMC saves the already written new
+-       *    _noarm() registers and the old not yet written
+-       *    _arm() registers
+-       * 5. DC5 exit -> DMC restores a mixture of old and
+-       *    new register values and arms the update
+-       * 6. PSR exit -> hardware latches a mixture of old and
+-       *    new register values -> corrupted frame, or worse
+-       * 7. New _arm() registers are finally written
+-       * 8. Hardware finally latches a complete set of new
+-       *    register values, and subsequent frames will be OK again
+-       */
+-      wakeref = intel_display_power_get(dev_priv, POWER_DOMAIN_DC_OFF);
++      if (state->modeset)
++              wakeref = intel_display_power_get(dev_priv, POWER_DOMAIN_MODESET);
+       intel_atomic_prepare_plane_clear_colors(state);
+@@ -7661,8 +7639,8 @@ static void intel_atomic_commit_tail(str
+                * the culprit.
+                */
+               intel_uncore_arm_unclaimed_mmio_detection(&dev_priv->uncore);
++              intel_display_power_put(dev_priv, POWER_DOMAIN_MODESET, wakeref);
+       }
+-      intel_display_power_put(dev_priv, POWER_DOMAIN_DC_OFF, wakeref);
+       intel_runtime_pm_put(&dev_priv->runtime_pm, state->wakeref);
+       /*
index b70f1144decb9e24cd570ef893f447088cf73660..28d46a42f0736e1c774993276b734295a691968a 100644 (file)
@@ -124,3 +124,4 @@ arm64-ptrace-don-t-enable-sve-when-setting-streaming-sve.patch
 drm-amdgpu-add-vram-reservation-based-on-vram_usagebyfirmware_v2_2.patch
 drm-amdgpu-remove-unnecessary-domain-argument.patch
 drm-amdgpu-use-apt-name-for-fw-reserved-region.patch
+revert-drm-i915-disable-dc-states-for-all-commits.patch