From: Jani Nikula <jani.nikula@intel.com>
To: Jani Nikula <jani.nikula@intel.com>,
intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Cc: ville.syrjala@linux.intel.com, rodrigo.vivi@intel.com
Subject: [PATCH v2] drm/xe/display: add xe_display_pm_runtime_resume_early()
Date: Thu, 2 Jul 2026 10:14:57 +0300 [thread overview]
Message-ID: <20260702071457.2985893-1-jani.nikula@intel.com> (raw)
In-Reply-To: <04158267b9d3715512bfb46c9772da04d3372184.1782913901.git.jani.nikula@intel.com>
Add new display runtime PM hook xe_display_pm_runtime_resume_early(), to
be called before IRQ resume. This is initially a no-op placeholder.
Add comments on the timing relative to irq suspend/resume to all the
runtime PM hooks.
v2: Add stub for CONFIG_DRM_XE_DISPLAY=n
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/xe/display/xe_display.c | 13 +++++++++++++
drivers/gpu/drm/xe/display/xe_display.h | 2 ++
drivers/gpu/drm/xe/xe_pm.c | 2 ++
3 files changed, 17 insertions(+)
diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
index 01b6501a204a..306c853dd07a 100644
--- a/drivers/gpu/drm/xe/display/xe_display.c
+++ b/drivers/gpu/drm/xe/display/xe_display.c
@@ -349,6 +349,7 @@ static void xe_display_disable_d3cold(struct xe_device *xe)
intel_display_driver_runtime_pm_enable(display);
}
+/* before irq suspend */
void xe_display_pm_runtime_suspend(struct xe_device *xe)
{
struct intel_display *display = xe->display;
@@ -364,6 +365,7 @@ void xe_display_pm_runtime_suspend(struct xe_device *xe)
intel_hpd_poll_enable(display);
}
+/* after irq suspend */
void xe_display_pm_runtime_suspend_late(struct xe_device *xe)
{
struct intel_display *display = xe->display;
@@ -382,6 +384,17 @@ void xe_display_pm_runtime_suspend_late(struct xe_device *xe)
intel_dmc_wl_flush_release_work(display);
}
+/* before irq resume */
+void xe_display_pm_runtime_resume_early(struct xe_device *xe)
+{
+ if (!xe->info.probe_display)
+ return;
+
+ if (xe->d3cold.allowed)
+ return;
+}
+
+/* after irq resume */
void xe_display_pm_runtime_resume(struct xe_device *xe)
{
struct intel_display *display = xe->display;
diff --git a/drivers/gpu/drm/xe/display/xe_display.h b/drivers/gpu/drm/xe/display/xe_display.h
index e5f9aed93206..0babb50bfc77 100644
--- a/drivers/gpu/drm/xe/display/xe_display.h
+++ b/drivers/gpu/drm/xe/display/xe_display.h
@@ -43,6 +43,7 @@ void xe_display_pm_resume_early(struct xe_device *xe);
void xe_display_pm_resume(struct xe_device *xe);
void xe_display_pm_runtime_suspend(struct xe_device *xe);
void xe_display_pm_runtime_suspend_late(struct xe_device *xe);
+void xe_display_pm_runtime_resume_early(struct xe_device *xe);
void xe_display_pm_runtime_resume(struct xe_device *xe);
#define XE_DISPLAY_DRIVER_FEATURES (DRIVER_MODESET | DRIVER_ATOMIC)
@@ -80,6 +81,7 @@ static inline void xe_display_pm_resume_early(struct xe_device *xe) {}
static inline void xe_display_pm_resume(struct xe_device *xe) {}
static inline void xe_display_pm_runtime_suspend(struct xe_device *xe) {}
static inline void xe_display_pm_runtime_suspend_late(struct xe_device *xe) {}
+static inline void xe_display_pm_runtime_resume_early(struct xe_device *xe) {}
static inline void xe_display_pm_runtime_resume(struct xe_device *xe) {}
#endif /* CONFIG_DRM_XE_DISPLAY */
diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
index 99562f691080..a5289a9df8d2 100644
--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -700,6 +700,8 @@ int xe_pm_runtime_resume(struct xe_device *xe)
if (xe->d3cold.allowed)
xe_sysctrl_pm_resume(xe);
+ xe_display_pm_runtime_resume_early(xe);
+
xe_irq_resume(xe);
for_each_gt(gt, xe, id) {
--
2.47.3
next prev parent reply other threads:[~2026-07-02 7:15 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-01 13:52 [RESEND v2 0/8] drm/{i915,xe}: unify runtime pm calls Jani Nikula
2026-07-01 13:52 ` [RESEND v2 1/8] drm/i915: call intel_uncore_runtime_resume() for each gt Jani Nikula
2026-07-01 13:53 ` [RESEND v2 2/8] drm/i915: call intel_display_power_runtime_resume() on suspend error path Jani Nikula
2026-07-01 19:59 ` Rodrigo Vivi
2026-07-01 13:53 ` [RESEND v2 3/8] drm/i915: move some display runtime suspend operations earlier Jani Nikula
2026-07-01 20:02 ` Rodrigo Vivi
2026-07-01 13:53 ` [RESEND v2 4/8] drm/i915: add intel_display_driver_pm_runtime*() functions Jani Nikula
2026-07-01 13:53 ` [RESEND v2 5/8] drm/{i915, xe}: add new intel_display_driver_runtime_pm_{enable, disable}() Jani Nikula
2026-07-01 13:53 ` [RESEND v2 6/8] drm/xe/display: separate d3cold handling from xe_display_pm_runtime_suspend_late() Jani Nikula
2026-07-01 13:53 ` [RESEND v2 7/8] drm/xe/display: add xe_display_pm_runtime_resume_early() Jani Nikula
2026-07-02 7:14 ` Jani Nikula [this message]
2026-07-01 13:53 ` [RESEND v2 8/8] drm/xe/display: unify runtime suspend/resume with i915 for non-d3cold Jani Nikula
2026-07-01 15:36 ` ✗ CI.KUnit: failure for drm/{i915,xe}: unify runtime pm calls (rev3) Patchwork
2026-07-02 1:24 ` ✓ i915.CI.BAT: success " Patchwork
2026-07-02 7:22 ` ✓ CI.KUnit: success for drm/{i915,xe}: unify runtime pm calls (rev4) Patchwork
2026-07-02 8:27 ` ✓ Xe.CI.BAT: " Patchwork
2026-07-02 8:33 ` ✓ i915.CI.BAT: " Patchwork
2026-07-03 0:10 ` ✗ i915.CI.Full: failure " Patchwork
2026-07-03 1:13 ` ✓ Xe.CI.FULL: success " Patchwork
2026-07-03 10:22 ` [RESEND v2 0/8] drm/{i915,xe}: unify runtime pm calls Ville Syrjälä
2026-07-03 12:36 ` Jani Nikula
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=20260702071457.2985893-1-jani.nikula@intel.com \
--to=jani.nikula@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=rodrigo.vivi@intel.com \
--cc=ville.syrjala@linux.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.