Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/xe/gt_debugfs: Use scope-based cleanup

Use scope-based cleanup for forcewake and runtime PM to simplify the
debugfs code slightly.

Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
Link: https://patch.msgid.link/20251118164338.3572146-45-matthew.d.roper@intel.com
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>

+8 -21
+8 -21
drivers/gpu/drm/xe/xe_gt_debugfs.c
··· 105 105 struct drm_info_node *node = m->private; 106 106 struct xe_gt *gt = node_to_gt(node); 107 107 struct xe_device *xe = gt_to_xe(gt); 108 - int ret; 109 108 110 - xe_pm_runtime_get(xe); 111 - ret = xe_gt_debugfs_simple_show(m, data); 112 - xe_pm_runtime_put(xe); 113 - 114 - return ret; 109 + guard(xe_pm_runtime)(xe); 110 + return xe_gt_debugfs_simple_show(m, data); 115 111 } 116 112 117 113 static int hw_engines(struct xe_gt *gt, struct drm_printer *p) 118 114 { 119 115 struct xe_hw_engine *hwe; 120 116 enum xe_hw_engine_id id; 121 - unsigned int fw_ref; 122 - int ret = 0; 123 117 124 - fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL); 125 - if (!xe_force_wake_ref_has_domain(fw_ref, XE_FORCEWAKE_ALL)) { 126 - ret = -ETIMEDOUT; 127 - goto fw_put; 128 - } 118 + CLASS(xe_force_wake, fw_ref)(gt_to_fw(gt), XE_FORCEWAKE_ALL); 119 + if (!xe_force_wake_ref_has_domain(fw_ref.domains, XE_FORCEWAKE_ALL)) 120 + return -ETIMEDOUT; 129 121 130 122 for_each_hw_engine(hwe, gt, id) 131 123 xe_hw_engine_print(hwe, p); 132 124 133 - fw_put: 134 - xe_force_wake_put(gt_to_fw(gt), fw_ref); 135 - 136 - return ret; 125 + return 0; 137 126 } 138 127 139 128 static int steering(struct xe_gt *gt, struct drm_printer *p) ··· 258 269 { 259 270 struct xe_device *xe = gt_to_xe(gt); 260 271 261 - xe_pm_runtime_get(xe); 272 + guard(xe_pm_runtime)(xe); 262 273 xe_gt_reset_async(gt); 263 - xe_pm_runtime_put(xe); 264 274 } 265 275 266 276 static ssize_t force_reset_write(struct file *file, ··· 285 297 { 286 298 struct xe_device *xe = gt_to_xe(gt); 287 299 288 - xe_pm_runtime_get(xe); 300 + guard(xe_pm_runtime)(xe); 289 301 xe_gt_reset(gt); 290 - xe_pm_runtime_put(xe); 291 302 } 292 303 293 304 static ssize_t force_reset_sync_write(struct file *file,