]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/xe/pat: Use scope-based forcewake
authorMatt Roper <matthew.d.roper@intel.com>
Tue, 18 Nov 2025 16:43:47 +0000 (08:43 -0800)
committerMatt Roper <matthew.d.roper@intel.com>
Wed, 19 Nov 2025 19:58:57 +0000 (11:58 -0800)
Use scope-based cleanup for forcewake in the PAT code to slightly
simplify the code.

Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
Link: https://patch.msgid.link/20251118164338.3572146-37-matthew.d.roper@intel.com
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
drivers/gpu/drm/xe/xe_pat.c

index 1b4d5d3def0fe8bc43262602af4083be7519b43d..717425dd04753f916c40875be4435fac9e5f74ca 100644 (file)
@@ -239,11 +239,10 @@ static void program_pat_mcr(struct xe_gt *gt, const struct xe_pat_table_entry ta
 static int xelp_dump(struct xe_gt *gt, struct drm_printer *p)
 {
        struct xe_device *xe = gt_to_xe(gt);
-       unsigned int fw_ref;
        int i;
 
-       fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
-       if (!fw_ref)
+       CLASS(xe_force_wake, fw_ref)(gt_to_fw(gt), XE_FW_GT);
+       if (!fw_ref.domains)
                return -ETIMEDOUT;
 
        drm_printf(p, "PAT table:\n");
@@ -256,7 +255,6 @@ static int xelp_dump(struct xe_gt *gt, struct drm_printer *p)
                           XELP_MEM_TYPE_STR_MAP[mem_type], pat);
        }
 
-       xe_force_wake_put(gt_to_fw(gt), fw_ref);
        return 0;
 }
 
@@ -268,11 +266,10 @@ static const struct xe_pat_ops xelp_pat_ops = {
 static int xehp_dump(struct xe_gt *gt, struct drm_printer *p)
 {
        struct xe_device *xe = gt_to_xe(gt);
-       unsigned int fw_ref;
        int i;
 
-       fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
-       if (!fw_ref)
+       CLASS(xe_force_wake, fw_ref)(gt_to_fw(gt), XE_FW_GT);
+       if (!fw_ref.domains)
                return -ETIMEDOUT;
 
        drm_printf(p, "PAT table:\n");
@@ -287,7 +284,6 @@ static int xehp_dump(struct xe_gt *gt, struct drm_printer *p)
                           XELP_MEM_TYPE_STR_MAP[mem_type], pat);
        }
 
-       xe_force_wake_put(gt_to_fw(gt), fw_ref);
        return 0;
 }
 
@@ -299,11 +295,10 @@ static const struct xe_pat_ops xehp_pat_ops = {
 static int xehpc_dump(struct xe_gt *gt, struct drm_printer *p)
 {
        struct xe_device *xe = gt_to_xe(gt);
-       unsigned int fw_ref;
        int i;
 
-       fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
-       if (!fw_ref)
+       CLASS(xe_force_wake, fw_ref)(gt_to_fw(gt), XE_FW_GT);
+       if (!fw_ref.domains)
                return -ETIMEDOUT;
 
        drm_printf(p, "PAT table:\n");
@@ -316,7 +311,6 @@ static int xehpc_dump(struct xe_gt *gt, struct drm_printer *p)
                           REG_FIELD_GET(XEHPC_CLOS_LEVEL_MASK, pat), pat);
        }
 
-       xe_force_wake_put(gt_to_fw(gt), fw_ref);
        return 0;
 }
 
@@ -328,11 +322,10 @@ static const struct xe_pat_ops xehpc_pat_ops = {
 static int xelpg_dump(struct xe_gt *gt, struct drm_printer *p)
 {
        struct xe_device *xe = gt_to_xe(gt);
-       unsigned int fw_ref;
        int i;
 
-       fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
-       if (!fw_ref)
+       CLASS(xe_force_wake, fw_ref)(gt_to_fw(gt), XE_FW_GT);
+       if (!fw_ref.domains)
                return -ETIMEDOUT;
 
        drm_printf(p, "PAT table:\n");
@@ -350,7 +343,6 @@ static int xelpg_dump(struct xe_gt *gt, struct drm_printer *p)
                           REG_FIELD_GET(XELPG_INDEX_COH_MODE_MASK, pat), pat);
        }
 
-       xe_force_wake_put(gt_to_fw(gt), fw_ref);
        return 0;
 }
 
@@ -367,12 +359,11 @@ static const struct xe_pat_ops xelpg_pat_ops = {
 static int xe2_dump(struct xe_gt *gt, struct drm_printer *p)
 {
        struct xe_device *xe = gt_to_xe(gt);
-       unsigned int fw_ref;
        u32 pat;
        int i;
 
-       fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
-       if (!fw_ref)
+       CLASS(xe_force_wake, fw_ref)(gt_to_fw(gt), XE_FW_GT);
+       if (!fw_ref.domains)
                return -ETIMEDOUT;
 
        drm_printf(p, "PAT table: (* = reserved entry)\n");
@@ -412,7 +403,6 @@ static int xe2_dump(struct xe_gt *gt, struct drm_printer *p)
                   REG_FIELD_GET(XE2_COH_MODE, pat),
                   pat);
 
-       xe_force_wake_put(gt_to_fw(gt), fw_ref);
        return 0;
 }
 
@@ -425,12 +415,11 @@ static const struct xe_pat_ops xe2_pat_ops = {
 static int xe3p_xpc_dump(struct xe_gt *gt, struct drm_printer *p)
 {
        struct xe_device *xe = gt_to_xe(gt);
-       unsigned int fw_ref;
        u32 pat;
        int i;
 
-       fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
-       if (!fw_ref)
+       CLASS(xe_force_wake, fw_ref)(gt_to_fw(gt), XE_FW_GT);
+       if (!fw_ref.domains)
                return -ETIMEDOUT;
 
        drm_printf(p, "PAT table: (* = reserved entry)\n");
@@ -462,7 +451,6 @@ static int xe3p_xpc_dump(struct xe_gt *gt, struct drm_printer *p)
                   REG_FIELD_GET(XE2_COH_MODE, pat),
                   pat);
 
-       xe_force_wake_put(gt_to_fw(gt), fw_ref);
        return 0;
 }