From 4d120d24d33324394108391a3a430957161c640d Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 3 May 2021 18:54:59 +0200 Subject: [PATCH] 5.12-stable patches added patches: drm-i915-disable-runtime-power-management-during-shutdown.patch --- ...ime-power-management-during-shutdown.patch | 58 +++++++++++++++++++ queue-5.12/series | 1 + 2 files changed, 59 insertions(+) create mode 100644 queue-5.12/drm-i915-disable-runtime-power-management-during-shutdown.patch 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 index 00000000000..4a60e7c059e --- /dev/null +++ b/queue-5.12/drm-i915-disable-runtime-power-management-during-shutdown.patch @@ -0,0 +1,58 @@ +From 7962893ecb853aa7c8925ce237ab6c4274cfc1c7 Mon Sep 17 00:00:00 2001 +From: Imre Deak +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 + +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 +Signed-off-by: Imre Deak +Reviewed-by: Khaled Almahallawy +Reviewed-by: Ville Syrjälä +Link: https://patchwork.freedesktop.org/patch/msgid/20210127181909.128094-1-imre.deak@intel.com +Signed-off-by: Greg Kroah-Hartman +--- + 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) diff --git a/queue-5.12/series b/queue-5.12/series index 2be292fc383..306af469a95 100644 --- a/queue-5.12/series +++ b/queue-5.12/series @@ -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 -- 2.47.3