[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1452869739-3304-21-git-send-email-gustavo@padovan.org>
Date: Fri, 15 Jan 2016 12:55:30 -0200
From: Gustavo Padovan <gustavo@...ovan.org>
To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: linux-kernel@...r.kernel.org, devel@...verdev.osuosl.org,
dri-devel@...ts.freedesktop.org, daniels@...labora.com,
Arve Hjønnevåg <arve@...roid.com>,
Riley Andrews <riandrews@...roid.com>,
Daniel Vetter <daniel.vetter@...ll.ch>,
Rob Clark <robdclark@...il.com>,
Greg Hackmann <ghackmann@...gle.com>,
John Harrison <John.C.Harrison@...el.com>,
Maarten Lankhorst <maarten.lankhorst@...onical.com>,
Gustavo Padovan <gustavo.padovan@...labora.co.uk>
Subject: [RFC 20/29] dma-buf/fence: remove fence_timeline_ops
From: Gustavo Padovan <gustavo.padovan@...labora.co.uk>
fence_timeline_ops was just workarounding over fence_ops and was used
chained in the fence ops. So remove it all to simplify the fence code
flow.
Signed-off-by: Gustavo Padovan <gustavo.padovan@...labora.co.uk>
---
drivers/dma-buf/fence.c | 7 ++-----
drivers/staging/android/sw_sync.c | 20 +-------------------
include/linux/fence.h | 19 ++-----------------
3 files changed, 5 insertions(+), 41 deletions(-)
diff --git a/drivers/dma-buf/fence.c b/drivers/dma-buf/fence.c
index d9089a0..ec51146 100644
--- a/drivers/dma-buf/fence.c
+++ b/drivers/dma-buf/fence.c
@@ -54,7 +54,6 @@ EXPORT_SYMBOL(fence_context_alloc);
/**
* fence_timeline_create - create a new fence_timeline
* @num: [in] amount of contexts to allocate
- * @ops: [in] timeline ops of the caller
* @size: [in] size to allocate struct fence_timeline
* @drv_name: [in] name of the driver
* @name: [in] name of the timeline
@@ -63,9 +62,8 @@ EXPORT_SYMBOL(fence_context_alloc);
* It allocs and initializes a new fence_timeline with a proper fence context
* number assigned to it.
*/
-struct fence_timeline *fence_timeline_create(unsigned num,
- struct fence_timeline_ops *ops,
- int size, const char *drv_name,
+struct fence_timeline *fence_timeline_create(unsigned num, int size,
+ const char *drv_name,
const char *name)
{
struct fence_timeline *timeline;
@@ -78,7 +76,6 @@ struct fence_timeline *fence_timeline_create(unsigned num,
return NULL;
kref_init(&timeline->kref);
- timeline->ops = ops;
timeline->context = fence_context_alloc(1);
strlcpy(timeline->name, name, sizeof(timeline->name));
strlcpy(timeline->drv_name, drv_name, sizeof(timeline->drv_name));
diff --git a/drivers/staging/android/sw_sync.c b/drivers/staging/android/sw_sync.c
index cfd7a18..b9f8c51 100644
--- a/drivers/staging/android/sw_sync.c
+++ b/drivers/staging/android/sw_sync.c
@@ -38,28 +38,10 @@ struct fence *sw_sync_pt_create(struct sw_sync_timeline *obj, u32 value)
}
EXPORT_SYMBOL(sw_sync_pt_create);
-static int sw_sync_fill_driver_data(struct fence *fence,
- void *data, int size)
-{
- struct sw_sync_pt *pt = (struct sw_sync_pt *)fence;
-
- if (size < sizeof(pt->value))
- return -ENOMEM;
-
- memcpy(data, &pt->value, sizeof(pt->value));
-
- return sizeof(pt->value);
-}
-
-static struct fence_timeline_ops sw_sync_timeline_ops = {
- .fill_driver_data = sw_sync_fill_driver_data,
-};
-
struct sw_sync_timeline *sw_sync_timeline_create(const char *name)
{
struct sw_sync_timeline *obj = (struct sw_sync_timeline *)
- fence_timeline_create(1, &sw_sync_timeline_ops,
- sizeof(struct sw_sync_timeline),
+ fence_timeline_create(1, sizeof(struct sw_sync_timeline),
"sw_sync", name);
return obj;
diff --git a/include/linux/fence.h b/include/linux/fence.h
index 04438c3..8908433 100644
--- a/include/linux/fence.h
+++ b/include/linux/fence.h
@@ -30,22 +30,9 @@
#include <linux/printk.h>
#include <linux/rcupdate.h>
-struct fence_timeline;
struct fence;
struct fence_ops;
struct fence_cb;
-/**
- * struct fence_timeline_ops - fence context implementation ops
- * @fill_driver_data: write implementation specific driver data to data.
- * should return an error if there is not enough room
- * as specified by size. This information is returned
- * to userspace by SYNC_IOC_FENCE_INFO.
- * @pt_value_str: fill str with the value of the sync_pt
- */
-struct fence_timeline_ops {
- /* optional */
- int (*fill_driver_data)(struct fence *fence, void *data, int size);
-};
/**
* struct fence_timeline - timeline for software synchronization primitive
@@ -63,7 +50,6 @@ struct fence_timeline {
struct kref kref;
char name[32];
char drv_name[32];
- const struct fence_timeline_ops *ops;
bool destroyed;
unsigned int value;
int context;
@@ -75,9 +61,8 @@ struct fence_timeline {
#endif
};
-struct fence_timeline *fence_timeline_create(unsigned num,
- struct fence_timeline_ops *ops,
- int size, const char *drv_name,
+struct fence_timeline *fence_timeline_create(unsigned num, int size,
+ const char *drv_name,
const char *name);
void fence_timeline_get(struct fence_timeline *timeline);
void fence_timeline_put(struct fence_timeline *timeline);
--
2.5.0
Powered by blists - more mailing lists