diff options
| author | Raag Jadav <raag.jadav@intel.com> | 2025-11-28 13:52:12 +0530 |
|---|---|---|
| committer | Matt Roper <matthew.d.roper@intel.com> | 2025-12-02 07:29:41 -0800 |
| commit | 43109e398d2d4ac8a932ac46fde34e55cec53d4c (patch) | |
| tree | 395bf4f962810b4eac8b5a6d3ab997c54a800255 /drivers/gpu/drm/xe/xe_gt.c | |
| parent | 4c2768704710a5d4585941288e6a8159dd6dd33d (diff) | |
| download | linux-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.c | 32 |
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(>->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(>->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, |
