diff mbox series

[05/12] drm/i915: Suspend the framebuffer console during driver shutdown

Message ID 20240104083008.2715733-6-imre.deak@intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915: Fix HPD handling during driver init/shutdown | expand

Commit Message

Imre Deak Jan. 4, 2024, 8:30 a.m. UTC
Suspend the FB console during driver shutdown the same way this is done
during system resume. This should prevent any HPD event to trigger a new
FB probe/modeset cycle happening in parallel with the display HW
disable/uninitialize steps.

A preceding FB HPD event handling may be still pending, resulting in a
probe/modeset like the above, these will be prevented by a later change
in this patchset.

Signed-off-by: Imre Deak <imre.deak@intel.com>
---
 drivers/gpu/drm/i915/i915_driver.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Hogander, Jouni Jan. 8, 2024, 7:51 a.m. UTC | #1
On Thu, 2024-01-04 at 10:30 +0200, Imre Deak wrote:
> Suspend the FB console during driver shutdown the same way this is
> done
> during system resume. This should prevent any HPD event to trigger a
> new
> FB probe/modeset cycle happening in parallel with the display HW
> disable/uninitialize steps.
> 
> A preceding FB HPD event handling may be still pending, resulting in
> a
> probe/modeset like the above, these will be prevented by a later
> change
> in this patchset.
> 
> Signed-off-by: Imre Deak <imre.deak@intel.com>

Reviewed-by: Jouni Högander <jouni.hogander@intel.com>

> ---
>  drivers/gpu/drm/i915/i915_driver.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_driver.c
> b/drivers/gpu/drm/i915/i915_driver.c
> index be86596a8904d..9269b485137ce 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -1003,6 +1003,7 @@ void i915_driver_shutdown(struct
> drm_i915_private *i915)
>         intel_runtime_pm_disable(&i915->runtime_pm);
>         intel_power_domains_disable(i915);
>  
> +       intel_fbdev_set_suspend(&i915->drm, FBINFO_STATE_SUSPENDED,
> true);
>         if (HAS_DISPLAY(i915)) {
>                 drm_kms_helper_poll_disable(&i915->drm);
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index be86596a8904d..9269b485137ce 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -1003,6 +1003,7 @@  void i915_driver_shutdown(struct drm_i915_private *i915)
 	intel_runtime_pm_disable(&i915->runtime_pm);
 	intel_power_domains_disable(i915);
 
+	intel_fbdev_set_suspend(&i915->drm, FBINFO_STATE_SUSPENDED, true);
 	if (HAS_DISPLAY(i915)) {
 		drm_kms_helper_poll_disable(&i915->drm);