]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.12-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 3 May 2021 16:54:59 +0000 (18:54 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 3 May 2021 16:54:59 +0000 (18:54 +0200)
added patches:
drm-i915-disable-runtime-power-management-during-shutdown.patch

queue-5.12/drm-i915-disable-runtime-power-management-during-shutdown.patch [new file with mode: 0644]
queue-5.12/series

diff --git a/queue-5.12/drm-i915-disable-runtime-power-management-during-shutdown.patch b/queue-5.12/drm-i915-disable-runtime-power-management-during-shutdown.patch
new file mode 100644 (file)
index 0000000..4a60e7c
--- /dev/null
@@ -0,0 +1,58 @@
+From 7962893ecb853aa7c8925ce237ab6c4274cfc1c7 Mon Sep 17 00:00:00 2001
+From: Imre Deak <imre.deak@intel.com>
+Date: Wed, 27 Jan 2021 20:19:09 +0200
+Subject: drm/i915: Disable runtime power management during shutdown
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Imre Deak <imre.deak@intel.com>
+
+commit 7962893ecb853aa7c8925ce237ab6c4274cfc1c7 upstream.
+
+At least on some TGL platforms PUNIT wants to access some display HW
+registers, but it doesn't handle display power management (disabling DC
+states as required) and so this register access will lead to a hang. To
+prevent this disable runtime power management for poweroff and reboot.
+
+v2:
+- Add code comment clarifying the requirement of display power states.
+  (Ville)
+
+Reported-and-tested-by: Khaled Almahallawy <khaled.almahallawy@intel.com>
+Signed-off-by: Imre Deak <imre.deak@intel.com>
+Reviewed-by: Khaled Almahallawy <khaled.almahallawy@intel.com>
+Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
+Link: https://patchwork.freedesktop.org/patch/msgid/20210127181909.128094-1-imre.deak@intel.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/i915/i915_drv.c |   10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+--- a/drivers/gpu/drm/i915/i915_drv.c
++++ b/drivers/gpu/drm/i915/i915_drv.c
+@@ -1049,6 +1049,8 @@ static void intel_shutdown_encoders(stru
+ void i915_driver_shutdown(struct drm_i915_private *i915)
+ {
+       disable_rpm_wakeref_asserts(&i915->runtime_pm);
++      intel_runtime_pm_disable(&i915->runtime_pm);
++      intel_power_domains_disable(i915);
+       i915_gem_suspend(i915);
+@@ -1064,7 +1066,15 @@ void i915_driver_shutdown(struct drm_i91
+       intel_suspend_encoders(i915);
+       intel_shutdown_encoders(i915);
++      /*
++       * The only requirement is to reboot with display DC states disabled,
++       * for now leaving all display power wells in the INIT power domain
++       * enabled matching the driver reload sequence.
++       */
++      intel_power_domains_driver_remove(i915);
+       enable_rpm_wakeref_asserts(&i915->runtime_pm);
++
++      intel_runtime_pm_driver_release(&i915->runtime_pm);
+ }
+ static bool suspend_to_idle(struct drm_i915_private *dev_priv)
index 2be292fc38318ab598b090a39825c40688035946..306af469a956a75706bb1b8c4b66820ed8db6a27 100644 (file)
@@ -1,3 +1,4 @@
 mips-do-not-include-hi-and-lo-in-clobber-list-for-r6.patch
 netfilter-conntrack-make-global-sysctls-readonly-in-non-init-netns.patch
 net-usb-ax88179_178a-initialize-local-variables-before-use.patch
+drm-i915-disable-runtime-power-management-during-shutdown.patch