[PATCH 13/31] drm/{i915,xe}: Consolidate display suspend functions
Cavitt, Jonathan
jonathan.cavitt at intel.com
Mon Oct 7 21:14:37 UTC 2024
-----Original Message-----
From: Intel-gfx <intel-gfx-bounces at lists.freedesktop.org> On Behalf Of Rodrigo Vivi
Sent: Tuesday, September 24, 2024 1:36 PM
To: intel-gfx at lists.freedesktop.org; intel-xe at lists.freedesktop.org
Cc: Deak, Imre <imre.deak at intel.com>; Vivi, Rodrigo <rodrigo.vivi at intel.com>
Subject: [PATCH 13/31] drm/{i915,xe}: Consolidate display suspend functions
>
> Same sequences are currently executed by i915 and xe during
> system suspend. Consolidate them in the intel_display_driver
> side.
>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
This is the third patch that could or perhaps should be split into
two patches (I forgot to note it in patch 11) by i915 and xe.
I won't block on it, though.
Reviewed-by: Jonathan Cavitt <jonathan.cavitt at intel.com>
-Jonathan Cavitt
> ---
> .../gpu/drm/i915/display/intel_display_driver.c | 9 +++++++++
> drivers/gpu/drm/i915/i915_driver.c | 12 ------------
> drivers/gpu/drm/xe/display/xe_display.c | 15 ++-------------
> 3 files changed, 11 insertions(+), 25 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c b/drivers/gpu/drm/i915/display/intel_display_driver.c
> index 86d6ebf0c82f..f509ed1503c1 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_driver.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_driver.c
> @@ -670,6 +670,15 @@ int intel_display_driver_suspend(struct drm_i915_private *i915)
> if (!HAS_DISPLAY(i915))
> return 0;
>
> + /* We do a lot of poking in a lot of registers, make sure they work properly. */
> + intel_power_domains_disable(i915);
> +
> + intel_fbdev_set_suspend(&i915->drm, FBINFO_STATE_SUSPENDED, true);
> +
> + drm_kms_helper_poll_disable(&i915->drm);
> +
> + intel_display_driver_disable_user_access(i915);
> +
> state = drm_atomic_helper_suspend(&i915->drm);
> ret = PTR_ERR_OR_ZERO(state);
> if (ret)
> diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> index 4fc9d8bce1fd..12639fa232b3 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -43,7 +43,6 @@
> #include <drm/drm_atomic_helper.h>
> #include <drm/drm_ioctl.h>
> #include <drm/drm_managed.h>
> -#include <drm/drm_probe_helper.h>
>
> #include "display/i9xx_display_sr.h"
> #include "display/intel_acpi.h"
> @@ -55,7 +54,6 @@
> #include "display/intel_dp.h"
> #include "display/intel_dpt.h"
> #include "display/intel_encoder.h"
> -#include "display/intel_fbdev.h"
> #include "display/intel_hotplug.h"
> #include "display/intel_overlay.h"
> #include "display/intel_pch_refclk.h"
> @@ -995,19 +993,9 @@ static int i915_drm_suspend(struct drm_device *dev)
> {
> struct drm_i915_private *dev_priv = to_i915(dev);
> struct intel_display *display = &dev_priv->display;
> - struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
>
> disable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
>
> - /* We do a lot of poking in a lot of registers, make sure they work
> - * properly. */
> - intel_power_domains_disable(dev_priv);
> - intel_fbdev_set_suspend(dev, FBINFO_STATE_SUSPENDED, true);
> - if (HAS_DISPLAY(dev_priv)) {
> - drm_kms_helper_poll_disable(dev);
> - intel_display_driver_disable_user_access(dev_priv);
> - }
> -
> intel_display_driver_suspend(dev_priv);
>
> intel_irq_suspend(dev_priv);
> diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
> index 98ff603a1f84..45949b095d7e 100644
> --- a/drivers/gpu/drm/xe/display/xe_display.c
> +++ b/drivers/gpu/drm/xe/display/xe_display.c
> @@ -346,22 +346,11 @@ void xe_display_pm_suspend(struct xe_device *xe)
> {
> struct intel_display *display = &xe->display;
> bool s2idle = suspend_to_idle();
> +
> if (!xe->info.probe_display)
> return;
>
> - /*
> - * We do a lot of poking in a lot of registers, make sure they work
> - * properly.
> - */
> - intel_power_domains_disable(xe);
> -
> - intel_fbdev_set_suspend(&xe->drm, FBINFO_STATE_SUSPENDED, true);
> -
> - if (has_display(xe)) {
> - drm_kms_helper_poll_disable(&xe->drm);
> - intel_display_driver_disable_user_access(xe);
> - intel_display_driver_suspend(xe);
> - }
> + intel_display_driver_suspend(xe);
>
> xe_display_flush_cleanup_work(xe);
>
> --
> 2.46.0
>
>
More information about the Intel-gfx
mailing list