Skip to content

Commit 1d5bf4f

Browse files
hghimirarodrigovivi
authored andcommitted
drm/xe/gt_tlb_invalidation_ggtt: Update handling of xe_force_wake_get return
xe_force_wake_get() now returns the reference count-incremented domain mask. If it fails for individual domains, the return value will always be 0. However, for XE_FORCEWAKE_ALL, it may return a non-zero value even in the event of failure. Update the return handling of xe_force_wake_get() to reflect this behavior, and ensure that the return value is passed as input to xe_force_wake_put(). v3 - return xe_wakeref_t instead of int in xe_force_wake_get() v5 - return unsigned int from xe_force_wake_get() - remove redundant warns v7 - Fix commit message Cc: Matthew Brost <[email protected]> Cc: Rodrigo Vivi <[email protected]> Cc: Lucas De Marchi <[email protected]> Signed-off-by: Himal Prasad Ghimiray <[email protected]> Reviewed-by: Nirmoy Das <[email protected]> Reviewed-by: Badal Nilawar <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected] Signed-off-by: Rodrigo Vivi <[email protected]>
1 parent 52f8cd7 commit 1d5bf4f

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,7 @@ static int xe_gt_tlb_invalidation_guc(struct xe_gt *gt,
268268
int xe_gt_tlb_invalidation_ggtt(struct xe_gt *gt)
269269
{
270270
struct xe_device *xe = gt_to_xe(gt);
271+
unsigned int fw_ref;
271272

272273
if (xe_guc_ct_enabled(&gt->uc.guc.ct) &&
273274
gt->uc.guc.submission_state.enabled) {
@@ -286,7 +287,7 @@ int xe_gt_tlb_invalidation_ggtt(struct xe_gt *gt)
286287
if (IS_SRIOV_VF(xe))
287288
return 0;
288289

289-
xe_gt_WARN_ON(gt, xe_force_wake_get(gt_to_fw(gt), XE_FW_GT));
290+
fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
290291
if (xe->info.platform == XE_PVC || GRAPHICS_VER(xe) >= 20) {
291292
xe_mmio_write32(mmio, PVC_GUC_TLB_INV_DESC1,
292293
PVC_GUC_TLB_INV_DESC1_INVALIDATE);
@@ -296,7 +297,7 @@ int xe_gt_tlb_invalidation_ggtt(struct xe_gt *gt)
296297
xe_mmio_write32(mmio, GUC_TLB_INV_CR,
297298
GUC_TLB_INV_CR_INVALIDATE);
298299
}
299-
xe_force_wake_put(gt_to_fw(gt), XE_FW_GT);
300+
xe_force_wake_put(gt_to_fw(gt), fw_ref);
300301
}
301302

302303
return 0;

0 commit comments

Comments
 (0)