Re: [PATCH v4 07/10] drm/xe/xe_late_bind_fw: Reload late binding fw during system resume

From: Nilawar, Badal
Date: Fri Jun 27 2025 - 03:53:39 EST


Hi Daniele,

On 25-06-2025 22:30, Badal Nilawar wrote:
Reload late binding fw during resume from system suspend

v2:
- Unconditionally reload late binding fw (Rodrigo)
- Flush worker during system suspend

Cc: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
Signed-off-by: Badal Nilawar <badal.nilawar@xxxxxxxxx>
---
drivers/gpu/drm/xe/xe_pm.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
index 91923fd4af80..f49b7b6eab97 100644
--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -127,6 +127,8 @@ int xe_pm_suspend(struct xe_device *xe)
if (err)
goto err;
+ xe_late_bind_wait_for_worker_completion(&xe->late_bind);
+

During system suspend, MEI will unbind the component. This flush is unnecessary because it takes place within xe_late_bind_component_unbind(). I will remove this call.

Badal

for_each_gt(gt, xe, id)
xe_gt_suspend_prepare(gt);
@@ -205,6 +207,8 @@ int xe_pm_resume(struct xe_device *xe)
xe_pxp_pm_resume(xe->pxp);
+ xe_late_bind_fw_load(&xe->late_bind);
+
drm_dbg(&xe->drm, "Device resumed\n");
return 0;
err: