From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755098AbcAOO5H (ORCPT ); Fri, 15 Jan 2016 09:57:07 -0500 Received: from mail-yk0-f174.google.com ([209.85.160.174]:33128 "EHLO mail-yk0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755029AbcAOO5C (ORCPT ); Fri, 15 Jan 2016 09:57:02 -0500 From: Gustavo Padovan To: Greg Kroah-Hartman Cc: linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, dri-devel@lists.freedesktop.org, daniels@collabora.com, =?UTF-8?q?Arve=20Hj=C3=B8nnev=C3=A5g?= , Riley Andrews , Daniel Vetter , Rob Clark , Greg Hackmann , John Harrison , Maarten Lankhorst , Gustavo Padovan Subject: [RFC 20/29] dma-buf/fence: remove fence_timeline_ops Date: Fri, 15 Jan 2016 12:55:30 -0200 Message-Id: <1452869739-3304-21-git-send-email-gustavo@padovan.org> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1452869739-3304-1-git-send-email-gustavo@padovan.org> References: <1452869739-3304-1-git-send-email-gustavo@padovan.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Gustavo Padovan 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 --- 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 #include -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