build/patch/kernel/rockchip-dev/2003-Renamed-Kernel-DMA-Fence-structures-and-functions.patch

306 lines
10 KiB
Diff

From d4db619690abe58b29052f1584a5e4d9e47d78a3 Mon Sep 17 00:00:00 2001
From: Myy <myy@miouyouyou.fr>
Date: Fri, 10 Feb 2017 14:48:54 +0000
Subject: [PATCH 2/3] Renamed Kernel DMA Fence structures and functions
DMA Fence structures and functions were renamed in Linux 4.9.
See this commit:
dma-buf: Rename struct fence to dma_fence
f54d1867005c3323f5d8ad83eed823e84226c429
Kernel: 4.9.0-rc
Signed-off-by: Myy <myy@miouyouyou.fr>
---
drivers/gpu/arm/midgard/mali_kbase_defs.h | 2 +-
drivers/gpu/arm/midgard/mali_kbase_dma_fence.c | 51 ++++++++++++-------------
drivers/gpu/arm/midgard/mali_kbase_dma_fence.h | 7 ++--
drivers/gpu/arm/midgard/mali_kbase_jd.c | 2 +-
drivers/gpu/arm/midgard/mali_kbase_jd_debugfs.c | 8 ++--
5 files changed, 33 insertions(+), 37 deletions(-)
diff --git a/drivers/gpu/arm/midgard/mali_kbase_defs.h b/drivers/gpu/arm/midgard/mali_kbase_defs.h
index 290d460..587cfb3 100644
--- a/drivers/gpu/arm/midgard/mali_kbase_defs.h
+++ b/drivers/gpu/arm/midgard/mali_kbase_defs.h
@@ -453,7 +453,7 @@ struct kbase_jd_atom {
* regardless of the event_code of the katom (signal also on
* failure).
*/
- struct fence *fence;
+ struct dma_fence *fence;
/* The dma-buf fence context number for this atom. A unique
* context number is allocated to each katom in the context on
* context creation.
diff --git a/drivers/gpu/arm/midgard/mali_kbase_dma_fence.c b/drivers/gpu/arm/midgard/mali_kbase_dma_fence.c
index 97bb6c5..82160ac 100644
--- a/drivers/gpu/arm/midgard/mali_kbase_dma_fence.c
+++ b/drivers/gpu/arm/midgard/mali_kbase_dma_fence.c
@@ -22,11 +22,8 @@
#include "mali_kbase_dma_fence.h"
#include <linux/atomic.h>
-#include <linux/fence.h>
-#include <linux/list.h>
#include <linux/lockdep.h>
#include <linux/mutex.h>
-#include <linux/reservation.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
#include <linux/workqueue.h>
@@ -56,19 +53,19 @@ kbase_dma_fence_waiters_remove(struct kbase_jd_atom *katom)
}
static const char *
-kbase_dma_fence_get_driver_name(struct fence *fence)
+kbase_dma_fence_get_driver_name(struct dma_fence *fence)
{
return kbase_drv_name;
}
static const char *
-kbase_dma_fence_get_timeline_name(struct fence *fence)
+kbase_dma_fence_get_timeline_name(struct dma_fence *fence)
{
return kbase_timeline_name;
}
static bool
-kbase_dma_fence_enable_signaling(struct fence *fence)
+kbase_dma_fence_enable_signaling(struct dma_fence *fence)
{
/* If in the future we need to add code here remember to
* to get a reference to the fence and release it when signaling
@@ -78,30 +75,30 @@ kbase_dma_fence_enable_signaling(struct fence *fence)
}
static void
-kbase_dma_fence_fence_value_str(struct fence *fence, char *str, int size)
+kbase_dma_fence_fence_value_str(struct dma_fence *fence, char *str, int size)
{
snprintf(str, size, "%u", fence->seqno);
}
-static const struct fence_ops kbase_dma_fence_ops = {
+static const struct dma_fence_ops kbase_dma_fence_ops = {
.get_driver_name = kbase_dma_fence_get_driver_name,
.get_timeline_name = kbase_dma_fence_get_timeline_name,
.enable_signaling = kbase_dma_fence_enable_signaling,
/* Use the default wait */
- .wait = fence_default_wait,
+ .wait = dma_fence_default_wait,
.fence_value_str = kbase_dma_fence_fence_value_str,
};
-static struct fence *
+static struct dma_fence *
kbase_dma_fence_new(unsigned int context, unsigned int seqno)
{
- struct fence *fence;
+ struct dma_fence *fence;
fence = kzalloc(sizeof(*fence), GFP_KERNEL);
if (!fence)
return NULL;
- fence_init(fence,
+ dma_fence_init(fence,
&kbase_dma_fence_ops,
&kbase_dma_fence_lock,
context,
@@ -212,7 +209,7 @@ kbase_dma_fence_free_callbacks(struct kbase_jd_atom *katom, bool queue_worker)
bool ret;
/* Cancel callbacks that hasn't been called yet. */
- ret = fence_remove_callback(cb->fence, &cb->fence_cb);
+ ret = dma_fence_remove_callback(cb->fence, &cb->fence_cb);
if (ret) {
int ret;
@@ -235,7 +232,7 @@ kbase_dma_fence_free_callbacks(struct kbase_jd_atom *katom, bool queue_worker)
* Release the reference taken in
* kbase_dma_fence_add_callback().
*/
- fence_put(cb->fence);
+ dma_fence_put(cb->fence);
list_del(&cb->node);
kfree(cb);
}
@@ -329,8 +326,8 @@ kbase_dma_fence_work(struct work_struct *pwork)
*/
static int
kbase_dma_fence_add_callback(struct kbase_jd_atom *katom,
- struct fence *fence,
- fence_func_t callback)
+ struct dma_fence *fence,
+ dma_fence_func_t callback)
{
int err = 0;
struct kbase_dma_fence_cb *kbase_fence_cb;
@@ -343,7 +340,7 @@ kbase_dma_fence_add_callback(struct kbase_jd_atom *katom,
kbase_fence_cb->katom = katom;
INIT_LIST_HEAD(&kbase_fence_cb->node);
- err = fence_add_callback(fence, &kbase_fence_cb->fence_cb, callback);
+ err = dma_fence_add_callback(fence, &kbase_fence_cb->fence_cb, callback);
if (err == -ENOENT) {
/* Fence signaled, clear the error and return */
err = 0;
@@ -356,7 +353,7 @@ kbase_dma_fence_add_callback(struct kbase_jd_atom *katom,
* Get reference to fence that will be kept until callback gets
* cleaned up in kbase_dma_fence_free_callbacks().
*/
- fence_get(fence);
+ dma_fence_get(fence);
atomic_inc(&katom->dma_fence.dep_count);
/* Add callback to katom's list of callbacks */
list_add(&kbase_fence_cb->node, &katom->dma_fence.callbacks);
@@ -366,7 +363,7 @@ kbase_dma_fence_add_callback(struct kbase_jd_atom *katom,
}
static void
-kbase_dma_fence_cb(struct fence *fence, struct fence_cb *cb)
+kbase_dma_fence_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
{
struct kbase_dma_fence_cb *kcb = container_of(cb,
struct kbase_dma_fence_cb,
@@ -386,8 +383,8 @@ kbase_dma_fence_add_reservation_callback(struct kbase_jd_atom *katom,
struct reservation_object *resv,
bool exclusive)
{
- struct fence *excl_fence = NULL;
- struct fence **shared_fences = NULL;
+ struct dma_fence *excl_fence = NULL;
+ struct dma_fence **shared_fences = NULL;
unsigned int shared_count = 0;
int err, i;
@@ -408,7 +405,7 @@ kbase_dma_fence_add_reservation_callback(struct kbase_jd_atom *katom,
* and it's the fence's owner is responsible for singling the fence
* before allowing it to disappear.
*/
- fence_put(excl_fence);
+ dma_fence_put(excl_fence);
if (err)
goto out;
@@ -431,7 +428,7 @@ kbase_dma_fence_add_reservation_callback(struct kbase_jd_atom *katom,
*/
out:
for (i = 0; i < shared_count; i++)
- fence_put(shared_fences[i]);
+ dma_fence_put(shared_fences[i]);
kfree(shared_fences);
if (err) {
@@ -468,7 +465,7 @@ int kbase_dma_fence_wait(struct kbase_jd_atom *katom,
struct kbase_dma_fence_resv_info *info)
{
int err, i;
- struct fence *fence;
+ struct dma_fence *fence;
struct ww_acquire_ctx ww_ctx;
lockdep_assert_held(&katom->kctx->jctx.lock);
@@ -490,7 +487,7 @@ int kbase_dma_fence_wait(struct kbase_jd_atom *katom,
dev_err(katom->kctx->kbdev->dev,
"Error %d locking reservations.\n", err);
atomic_set(&katom->dma_fence.dep_count, -1);
- fence_put(fence);
+ dma_fence_put(fence);
return err;
}
@@ -580,8 +577,8 @@ void kbase_dma_fence_signal(struct kbase_jd_atom *katom)
KBASE_DEBUG_ASSERT(atomic_read(&katom->dma_fence.dep_count) == -1);
/* Signal the atom's fence. */
- fence_signal(katom->dma_fence.fence);
- fence_put(katom->dma_fence.fence);
+ dma_fence_signal(katom->dma_fence.fence);
+ dma_fence_put(katom->dma_fence.fence);
katom->dma_fence.fence = NULL;
kbase_dma_fence_free_callbacks(katom, false);
diff --git a/drivers/gpu/arm/midgard/mali_kbase_dma_fence.h b/drivers/gpu/arm/midgard/mali_kbase_dma_fence.h
index 3b0a69b..19b343e 100644
--- a/drivers/gpu/arm/midgard/mali_kbase_dma_fence.h
+++ b/drivers/gpu/arm/midgard/mali_kbase_dma_fence.h
@@ -20,10 +20,9 @@
#ifdef CONFIG_MALI_DMA_FENCE
-#include <linux/fence.h>
#include <linux/list.h>
#include <linux/reservation.h>
-
+#include <linux/dma-fence.h>
/* Forward declaration from mali_kbase_defs.h */
struct kbase_jd_atom;
@@ -37,9 +36,9 @@ struct kbase_context;
* @node: List head for linking this callback to the katom
*/
struct kbase_dma_fence_cb {
- struct fence_cb fence_cb;
+ struct dma_fence_cb fence_cb;
struct kbase_jd_atom *katom;
- struct fence *fence;
+ struct dma_fence *fence;
struct list_head node;
};
diff --git a/drivers/gpu/arm/midgard/mali_kbase_jd.c b/drivers/gpu/arm/midgard/mali_kbase_jd.c
index 596b047..e3ea5f8 100644
--- a/drivers/gpu/arm/midgard/mali_kbase_jd.c
+++ b/drivers/gpu/arm/midgard/mali_kbase_jd.c
@@ -1847,7 +1847,7 @@ int kbase_jd_init(struct kbase_context *kctx)
kctx->jctx.atoms[i].status = KBASE_JD_ATOM_STATE_UNUSED;
#ifdef CONFIG_MALI_DMA_FENCE
- kctx->jctx.atoms[i].dma_fence.context = fence_context_alloc(1);
+ kctx->jctx.atoms[i].dma_fence.context = dma_fence_context_alloc(1);
atomic_set(&kctx->jctx.atoms[i].dma_fence.seqno, 0);
INIT_LIST_HEAD(&kctx->jctx.atoms[i].dma_fence.callbacks);
#endif
diff --git a/drivers/gpu/arm/midgard/mali_kbase_jd_debugfs.c b/drivers/gpu/arm/midgard/mali_kbase_jd_debugfs.c
index 47ea426..e2d4df8 100644
--- a/drivers/gpu/arm/midgard/mali_kbase_jd_debugfs.c
+++ b/drivers/gpu/arm/midgard/mali_kbase_jd_debugfs.c
@@ -71,7 +71,7 @@ static void kbase_jd_debugfs_fence_info(struct kbase_jd_atom *atom,
struct kbase_dma_fence_cb *cb;
if (atom->dma_fence.fence) {
- struct fence *fence = atom->dma_fence.fence;
+ struct dma_fence *fence = atom->dma_fence.fence;
seq_printf(sfile,
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0))
@@ -81,13 +81,13 @@ static void kbase_jd_debugfs_fence_info(struct kbase_jd_atom *atom,
#endif
fence->context,
fence->seqno,
- fence_is_signaled(fence) ?
+ dma_fence_is_signaled(fence) ?
"signaled" : "active");
}
list_for_each_entry(cb, &atom->dma_fence.callbacks,
node) {
- struct fence *fence = cb->fence;
+ struct dma_fence *fence = cb->fence;
seq_printf(sfile,
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0))
@@ -97,7 +97,7 @@ static void kbase_jd_debugfs_fence_info(struct kbase_jd_atom *atom,
#endif
fence->context,
fence->seqno,
- fence_is_signaled(fence) ?
+ dma_fence_is_signaled(fence) ?
"signaled" : "active");
}
}
--
2.10.2