Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1310180
| From | Gustavo Padovan <gustavo@padovan.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [RFC 20/29] dma-buf/fence: remove fence_timeline_ops |
| Date | 2016-01-15 16:00 +0100 |
| Message-ID | <qRe14-7zo-25@gated-at.bofh.it> (permalink) |
| References | <qRe14-7zo-5@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
From: Gustavo Padovan <gustavo.padovan@collabora.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@collabora.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
Back to linux.kernel | Previous | Next | Find similar | Unroll thread
[RFC 20/29] dma-buf/fence: remove fence_timeline_ops Gustavo Padovan <gustavo@padovan.org> - 2016-01-15 16:00 +0100
csiph-web