iris: Move iris_bo_busy_gem() to i915/iris_bufmgr.c
authorJosé Roberto de Souza <jose.souza@intel.com>
Mon, 24 Oct 2022 20:53:34 +0000 (13:53 -0700)
committerMarge Bot <emma+marge@anholt.net>
Tue, 7 Mar 2023 16:16:10 +0000 (16:16 +0000)
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21494>

src/gallium/drivers/iris/i915/iris_bufmgr.c
src/gallium/drivers/iris/i915/iris_bufmgr.h
src/gallium/drivers/iris/iris_bufmgr.c

index ba9e948..de50396 100644 (file)
 
 #include "drm-uapi/i915_drm.h"
 
+bool iris_i915_bo_busy_gem(struct iris_bo *bo)
+{
+   assert(iris_bo_is_real(bo));
+
+   struct iris_bufmgr *bufmgr = bo->bufmgr;
+   struct drm_i915_gem_busy busy = { .handle = bo->gem_handle };
+
+   if (intel_ioctl(iris_bufmgr_get_fd(bufmgr), DRM_IOCTL_I915_GEM_BUSY, &busy))
+      return false;
+
+   return busy.busy;
+}
index 1dcb270..cf9d539 100644 (file)
@@ -26,3 +26,4 @@
 
 struct iris_bo;
 
+bool iris_i915_bo_busy_gem(struct iris_bo *bo);
index aa17bf6..77687e0 100644 (file)
@@ -432,21 +432,6 @@ vma_free(struct iris_bufmgr *bufmgr,
    util_vma_heap_free(&bufmgr->vma_allocator[memzone], address, size);
 }
 
-static bool
-iris_bo_busy_gem(struct iris_bo *bo)
-{
-   assert(iris_bo_is_real(bo));
-
-   struct iris_bufmgr *bufmgr = bo->bufmgr;
-   struct drm_i915_gem_busy busy = { .handle = bo->gem_handle };
-
-   int ret = intel_ioctl(bufmgr->fd, DRM_IOCTL_I915_GEM_BUSY, &busy);
-   if (ret == 0) {
-      return busy.busy;
-   }
-   return false;
-}
-
 /* A timeout of 0 just checks for busyness. */
 static int
 iris_bo_wait_syncobj(struct iris_bo *bo, int64_t timeout_ns)
@@ -518,10 +503,18 @@ bool
 iris_bo_busy(struct iris_bo *bo)
 {
    bool busy;
-   if (iris_bo_is_external(bo))
-      busy = iris_bo_busy_gem(bo);
-   else
-      busy = iris_bo_busy_syncobj(bo);
+
+   switch (iris_bufmgr_get_device_info(bo->bufmgr)->kmd_type) {
+   case INTEL_KMD_TYPE_I915:
+      if (iris_bo_is_external(bo))
+         busy = iris_i915_bo_busy_gem(bo);
+      else
+         busy = iris_bo_busy_syncobj(bo);
+      break;
+   default:
+      unreachable("missing");
+      busy = true;
+   }
 
    bo->idle = !busy;