[PATCH v1] drm/xe/pm: Wait for lmem ready in resume
Karthik Poosa
karthik.poosa at intel.com
Thu Apr 10 11:00:57 UTC 2025
Add wait for LMEM ready during system and runtime resume.
This wait is there in probe and is missing during resume.
Signed-off-by: Karthik Poosa <karthik.poosa at intel.com>
---
drivers/gpu/drm/xe/xe_device.c | 2 +-
drivers/gpu/drm/xe/xe_device.h | 1 +
drivers/gpu/drm/xe/xe_pm.c | 8 ++++++++
3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 75e753e0a682..4c0d9eb51d1f 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -630,7 +630,7 @@ static bool verify_lmem_ready(struct xe_device *xe)
return !!val;
}
-static int wait_for_lmem_ready(struct xe_device *xe)
+int wait_for_lmem_ready(struct xe_device *xe)
{
unsigned long timeout, start;
diff --git a/drivers/gpu/drm/xe/xe_device.h b/drivers/gpu/drm/xe/xe_device.h
index 0bc3bc8e6803..60bc92f9ab22 100644
--- a/drivers/gpu/drm/xe/xe_device.h
+++ b/drivers/gpu/drm/xe/xe_device.h
@@ -47,6 +47,7 @@ int xe_device_probe_early(struct xe_device *xe);
int xe_device_probe(struct xe_device *xe);
void xe_device_remove(struct xe_device *xe);
void xe_device_shutdown(struct xe_device *xe);
+int wait_for_lmem_ready(struct xe_device *xe);
void xe_device_wmb(struct xe_device *xe);
diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
index 4e112fbacada..2e59670660c1 100644
--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -182,6 +182,10 @@ int xe_pm_resume(struct xe_device *xe)
if (err)
return err;
+ err = wait_for_lmem_ready(xe);
+ if (err)
+ goto err;
+
xe_display_pm_resume_early(xe);
/*
@@ -478,6 +482,10 @@ int xe_pm_runtime_resume(struct xe_device *xe)
if (err)
goto out;
+ err = wait_for_lmem_ready(xe);
+ if (err)
+ goto out;
+
xe_display_pm_resume_early(xe);
/*
--
2.25.1
More information about the Intel-xe
mailing list