On 14/09/2022 17:59, Jani Nikula wrote:
Maybe there was a grand plan with i915_fence_timeout() and
i915_fence_context_timeout() and i915_config.c, but that seems to have
been lost a bit.
Just move the functions to i915_sw_fence.[ch] from i915_drv.h and
i915_config.c, and remove the latter.
Sorry this does not fit - i915_sw_fence is a low level agnostic code
which should have no connection to fence timeouts as defined by higher
levels. How about i915_config.h? Even if only as a temporary solution
which requires least thinking. Because I am not coming with any obvious
new homes among the existing headers..
Regards,
Tvrtko
Cc: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
---
drivers/gpu/drm/i915/Makefile | 1 -
drivers/gpu/drm/i915/i915_config.c | 15 ---------------
drivers/gpu/drm/i915/i915_drv.h | 9 ---------
drivers/gpu/drm/i915/i915_sw_fence.c | 15 +++++++++++++++
drivers/gpu/drm/i915/i915_sw_fence.h | 5 +++++
5 files changed, 20 insertions(+), 25 deletions(-)
delete mode 100644 drivers/gpu/drm/i915/i915_config.c
diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index a26edcdadc21..0221682d3a0f 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -34,7 +34,6 @@ subdir-ccflags-y += -I$(srctree)/$(src)
# core driver code
i915-y += i915_driver.o \
i915_drm_client.o \
- i915_config.o \
i915_getparam.o \
i915_ioctl.o \
i915_irq.o \
diff --git a/drivers/gpu/drm/i915/i915_config.c b/drivers/gpu/drm/i915/i915_config.c
deleted file mode 100644
index afb828dab53b..000000000000
--- a/drivers/gpu/drm/i915/i915_config.c
+++ /dev/null
@@ -1,15 +0,0 @@
-// SPDX-License-Identifier: MIT
-/*
- * Copyright © 2020 Intel Corporation
- */
-
-#include "i915_drv.h"
-
-unsigned long
-i915_fence_context_timeout(const struct drm_i915_private *i915, u64 context)
-{
- if (CONFIG_DRM_I915_FENCE_TIMEOUT && context)
- return msecs_to_jiffies_timeout(CONFIG_DRM_I915_FENCE_TIMEOUT);
-
- return 0;
-}
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 524b5ee495be..02956385d32d 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -167,15 +167,6 @@ struct i915_gem_mm {
#define I915_IDLE_ENGINES_TIMEOUT (200) /* in ms */
-unsigned long i915_fence_context_timeout(const struct drm_i915_private *i915,
- u64 context);
-
-static inline unsigned long
-i915_fence_timeout(const struct drm_i915_private *i915)
-{
- return i915_fence_context_timeout(i915, U64_MAX);
-}
-
#define HAS_HW_SAGV_WM(i915) (DISPLAY_VER(i915) >= 13 && !IS_DGFX(i915))
struct i915_virtual_gpu {
diff --git a/drivers/gpu/drm/i915/i915_sw_fence.c b/drivers/gpu/drm/i915/i915_sw_fence.c
index 6fc0d1b89690..2a90987799e7 100644
--- a/drivers/gpu/drm/i915/i915_sw_fence.c
+++ b/drivers/gpu/drm/i915/i915_sw_fence.c
@@ -11,6 +11,7 @@
#include "i915_sw_fence.h"
#include "i915_selftest.h"
+#include "i915_utils.h"
#if IS_ENABLED(CONFIG_DRM_I915_DEBUG)
#define I915_SW_FENCE_BUG_ON(expr) BUG_ON(expr)
@@ -471,6 +472,20 @@ static void irq_i915_sw_fence_work(struct irq_work *wrk)
kfree_rcu(cb, rcu);
}
+unsigned long i915_fence_context_timeout(const struct drm_i915_private *i915,
+ u64 context)
+{
+ if (CONFIG_DRM_I915_FENCE_TIMEOUT && context)
+ return msecs_to_jiffies_timeout(CONFIG_DRM_I915_FENCE_TIMEOUT);
+
+ return 0;
+}
+
+unsigned long i915_fence_timeout(const struct drm_i915_private *i915)
+{
+ return i915_fence_context_timeout(i915, U64_MAX);
+}
+
int i915_sw_fence_await_dma_fence(struct i915_sw_fence *fence,
struct dma_fence *dma,
unsigned long timeout,
diff --git a/drivers/gpu/drm/i915/i915_sw_fence.h b/drivers/gpu/drm/i915/i915_sw_fence.h
index 619fc5a22f0c..cdef7dabafbd 100644
--- a/drivers/gpu/drm/i915/i915_sw_fence.h
+++ b/drivers/gpu/drm/i915/i915_sw_fence.h
@@ -17,6 +17,7 @@
struct completion;
struct dma_resv;
+struct drm_i915_private;
struct i915_sw_fence;
enum i915_sw_fence_notify {
@@ -81,6 +82,10 @@ struct i915_sw_dma_fence_cb {
struct i915_sw_fence *fence;
};
+unsigned long i915_fence_context_timeout(const struct drm_i915_private *i915,
+ u64 context);
+unsigned long i915_fence_timeout(const struct drm_i915_private *i915);
+
int __i915_sw_fence_await_dma_fence(struct i915_sw_fence *fence,
struct dma_fence *dma,
struct i915_sw_dma_fence_cb *cb);