Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Vinod Govindapillai <vinod.govindapillai@intel.com>
To: intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org
Cc: vinod.govindapillai@intel.com, imre.deak@intel.com,
	jouni.hogander@intel.com
Subject: [PATCH v5 07/10] drm/i915: plug the pm runtime handlers with PME HPD handling
Date: Fri, 11 Sep 2026 11:04:45 +0300	[thread overview]
Message-ID: <20260911080448.778316-8-vinod.govindapillai@intel.com> (raw)
In-Reply-To: <20260911080448.778316-1-vinod.govindapillai@intel.com>

Runtime PM suspend routine should set the HPD can generate PME flag
if PME is enabled. This will avoid resetting the HPD IRQs during
IRQ reset on suspend and also avoid starting HPD polling. Then
during the early runtime PM resume call, the HPD can generate PME must
be cleared unconditionally. Plug the routines to set/clear the flags
based on pme capability to intel_display_driver_pm_runtime_suspend()
and intel_display_driver_pm_runtime_resume_early().

Assisted-by: GitHub_Copilot:claude-opus-5
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
---
 .../gpu/drm/i915/display/intel_display_driver.c  | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c b/drivers/gpu/drm/i915/display/intel_display_driver.c
index 70d112fd4287..263eb3e08ea1 100644
--- a/drivers/gpu/drm/i915/display/intel_display_driver.c
+++ b/drivers/gpu/drm/i915/display/intel_display_driver.c
@@ -34,6 +34,7 @@
 #include "intel_display_driver.h"
 #include "intel_display_irq.h"
 #include "intel_display_power.h"
+#include "intel_display_rpm.h"
 #include "intel_display_types.h"
 #include "intel_display_utils.h"
 #include "intel_display_wa.h"
@@ -898,9 +899,17 @@ void intel_display_driver_runtime_pm_disable(struct intel_display *display)
 	intel_display_power_disable(display);
 }
 
+static void intel_display_driver_pm_runtime_set_pme(struct intel_display *display)
+{
+	bool pme_enabled = intel_display_rpm_pme_enabled(display);
+
+	intel_hpd_set_pme_capable(display, pme_enabled);
+}
+
 /* before irq suspend */
 void intel_display_driver_pm_runtime_suspend(struct intel_display *display)
 {
+	intel_display_driver_pm_runtime_set_pme(display);
 }
 
 /* after irq suspend */
@@ -935,9 +944,16 @@ void intel_display_driver_pm_runtime_suspend_late(struct intel_display *display)
 		intel_hpd_poll_enable(display);
 }
 
+static void intel_display_driver_pm_runtime_clear_pme(struct intel_display *display)
+{
+	intel_hpd_set_pme_capable(display, false);
+}
+
 /* before irq resume */
 void intel_display_driver_pm_runtime_resume_early(struct intel_display *display)
 {
+	intel_display_driver_pm_runtime_clear_pme(display);
+
 	intel_opregion_notify_adapter(display, PCI_D0);
 
 	intel_display_power_runtime_resume(display);
-- 
2.43.0


  parent reply	other threads:[~2026-09-11  8:05 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-11  8:04 [PATCH v5 00/10] pm_pme support on display hotplug Vinod Govindapillai
2026-09-11  8:04 ` [PATCH v5 01/10] drm/xe/pm: initialize the device's system wakeup capabilities Vinod Govindapillai
2026-09-11  8:04 ` [PATCH v5 02/10] drm/xe/pm: introduce PM PME support Vinod Govindapillai
2026-09-11  8:04 ` [PATCH v5 03/10] drm/xe/pm: avoid reclaim when arming PME wakeup Vinod Govindapillai
2026-09-11  8:22   ` sashiko-bot
2026-09-11  8:04 ` [PATCH v5 04/10] drm/i915: add pme_enabled() to the parent interface Vinod Govindapillai
2026-09-11  8:04 ` [PATCH v5 05/10] drm/i915/xe: plug the pme_enabed implementation for xe Vinod Govindapillai
2026-09-11  8:04 ` [PATCH v5 06/10] drm/i915/hotplug: add helpers to track HPDs can generate PME Vinod Govindapillai
2026-09-11 13:00   ` Jani Nikula
2026-09-11 15:36     ` Govindapillai, Vinod
2026-09-11  8:04 ` Vinod Govindapillai [this message]
2026-09-11  8:04 ` [PATCH v5 08/10] drm/xe/pm: clear PME HPD flag on runtime suspend error handler Vinod Govindapillai
2026-09-11  8:20   ` sashiko-bot
2026-09-11  8:04 ` [PATCH v5 09/10] drm/i915/irq: conditional HPD IRQ resets based on PME capability Vinod Govindapillai
2026-09-11  8:27   ` sashiko-bot
2026-09-11  8:04 ` [PATCH v5 10/10] drm/i915/hotplug: avoid HPD polling if the device is PME capable Vinod Govindapillai
2026-09-11  8:34   ` sashiko-bot
2026-09-11  8:17 ` ✓ CI.KUnit: success for pm_pme support on display hotplug (rev5) Patchwork
2026-09-11  9:06 ` ✓ Xe.CI.BAT: " Patchwork
2026-09-11 15:39 ` ✓ Xe.CI.FULL: " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260911080448.778316-8-vinod.govindapillai@intel.com \
    --to=vinod.govindapillai@intel.com \
    --cc=imre.deak@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=jouni.hogander@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox