From: Greg Kroah-Hartman Date: Mon, 3 May 2021 16:54:42 +0000 (+0200) Subject: 5.11-stable patches X-Git-Tag: v4.19.190~47 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1936c3393df00291f6214e106f1d71b29f6dae25;p=thirdparty%2Fkernel%2Fstable-queue.git 5.11-stable patches added patches: drm-i915-disable-runtime-power-management-during-shutdown.patch --- diff --git a/queue-5.11/drm-i915-disable-runtime-power-management-during-shutdown.patch b/queue-5.11/drm-i915-disable-runtime-power-management-during-shutdown.patch new file mode 100644 index 00000000000..eb88f033ccd --- /dev/null +++ b/queue-5.11/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 +@@ -1048,6 +1048,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); + +@@ -1063,7 +1065,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.11/series b/queue-5.11/series index 2be292fc383..306af469a95 100644 --- a/queue-5.11/series +++ b/queue-5.11/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