summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/xe/xe_gt.c
diff options
context:
space:
mode:
authorRaag Jadav <raag.jadav@intel.com>2025-11-28 13:52:12 +0530
committerMatt Roper <matthew.d.roper@intel.com>2025-12-02 07:29:41 -0800
commit43109e398d2d4ac8a932ac46fde34e55cec53d4c (patch)
tree395bf4f962810b4eac8b5a6d3ab997c54a800255 /drivers/gpu/drm/xe/xe_gt.c
parent4c2768704710a5d4585941288e6a8159dd6dd33d (diff)
downloadlinux-next-43109e398d2d4ac8a932ac46fde34e55cec53d4c.tar.gz
linux-next-43109e398d2d4ac8a932ac46fde34e55cec53d4c.zip
drm/xe/gt: Use scope-based forcewake
Switch runtime PM code to use scope-based forcewake for consistency with other parts of the driver. Signed-off-by: Raag Jadav <raag.jadav@intel.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Link: https://patch.msgid.link/20251128082212.294592-1-raag.jadav@intel.com Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Diffstat (limited to 'drivers/gpu/drm/xe/xe_gt.c')
-rw-r--r--drivers/gpu/drm/xe/xe_gt.c32
1 files changed, 10 insertions, 22 deletions
diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
index 996756d1fbd5..1bfde7af90b3 100644
--- a/drivers/gpu/drm/xe/xe_gt.c
+++ b/drivers/gpu/drm/xe/xe_gt.c
@@ -964,26 +964,20 @@ int xe_gt_resume(struct xe_gt *gt)
*/
int xe_gt_runtime_suspend(struct xe_gt *gt)
{
- unsigned int fw_ref;
- int err = -ETIMEDOUT;
-
xe_gt_dbg(gt, "runtime suspending\n");
- fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL);
- if (!xe_force_wake_ref_has_domain(fw_ref, XE_FORCEWAKE_ALL))
- goto err_force_wake;
+ CLASS(xe_force_wake, fw_ref)(gt_to_fw(gt), XE_FORCEWAKE_ALL);
+ if (!xe_force_wake_ref_has_domain(fw_ref.domains, XE_FORCEWAKE_ALL)) {
+ xe_gt_err(gt, "runtime suspend failed (%pe)\n", ERR_PTR(-ETIMEDOUT));
+ return -ETIMEDOUT;
+ }
xe_uc_runtime_suspend(&gt->uc);
xe_gt_disable_host_l2_vram(gt);
- xe_force_wake_put(gt_to_fw(gt), fw_ref);
xe_gt_dbg(gt, "runtime suspended\n");
return 0;
-
-err_force_wake:
- xe_force_wake_put(gt_to_fw(gt), fw_ref);
- return err;
}
/**
@@ -994,26 +988,20 @@ err_force_wake:
*/
int xe_gt_runtime_resume(struct xe_gt *gt)
{
- unsigned int fw_ref;
- int err = -ETIMEDOUT;
-
xe_gt_dbg(gt, "runtime resuming\n");
- fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL);
- if (!xe_force_wake_ref_has_domain(fw_ref, XE_FORCEWAKE_ALL))
- goto err_force_wake;
+ CLASS(xe_force_wake, fw_ref)(gt_to_fw(gt), XE_FORCEWAKE_ALL);
+ if (!xe_force_wake_ref_has_domain(fw_ref.domains, XE_FORCEWAKE_ALL)) {
+ xe_gt_err(gt, "runtime resume failed (%pe)\n", ERR_PTR(-ETIMEDOUT));
+ return -ETIMEDOUT;
+ }
xe_gt_enable_host_l2_vram(gt);
xe_uc_runtime_resume(&gt->uc);
- xe_force_wake_put(gt_to_fw(gt), fw_ref);
xe_gt_dbg(gt, "runtime resumed\n");
return 0;
-
-err_force_wake:
- xe_force_wake_put(gt_to_fw(gt), fw_ref);
- return err;
}
struct xe_hw_engine *xe_gt_hw_engine(struct xe_gt *gt,