drm/xe: Convert xe_gem_fault to use direct xe_pm_runtime calls
authorRodrigo Vivi <rodrigo.vivi@intel.com>
Wed, 17 Apr 2024 20:39:48 +0000 (16:39 -0400)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 18 Apr 2024 12:31:40 +0000 (08:31 -0400)
The gem page fault is one of the outer bound protections where
we want to ensure that the hardware is in D0 before proceeding
with memory access. Let's convert it towards the xe_pm_runtime
functions directly so we can then convert the mem_access to be
inner protection only and then Kill it for good.

Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240417203952.25503-6-rodrigo.vivi@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_bo.c

index fdeb3691d3f6f11253099c346dbb1758203803a3..9889adcc458bb9be71e196e4bf1efd465b33d34d 100644 (file)
@@ -22,6 +22,7 @@
 #include "xe_gt.h"
 #include "xe_map.h"
 #include "xe_migrate.h"
+#include "xe_pm.h"
 #include "xe_preempt_fence.h"
 #include "xe_res_cursor.h"
 #include "xe_trace.h"
@@ -1107,7 +1108,7 @@ static vm_fault_t xe_gem_fault(struct vm_fault *vmf)
        int idx;
 
        if (needs_rpm)
-               xe_device_mem_access_get(xe);
+               xe_pm_runtime_get(xe);
 
        ret = ttm_bo_vm_reserve(tbo, vmf);
        if (ret)
@@ -1138,7 +1139,7 @@ static vm_fault_t xe_gem_fault(struct vm_fault *vmf)
        dma_resv_unlock(tbo->base.resv);
 out:
        if (needs_rpm)
-               xe_device_mem_access_put(xe);
+               xe_pm_runtime_put(xe);
 
        return ret;
 }