From: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxx> --- 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 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel