From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756460AbcCWStK (ORCPT ); Wed, 23 Mar 2016 14:49:10 -0400 Received: from mail-yw0-f170.google.com ([209.85.161.170]:35620 "EHLO mail-yw0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756125AbcCWSri (ORCPT ); Wed, 23 Mar 2016 14:47:38 -0400 From: Gustavo Padovan To: dri-devel@lists.freedesktop.org Cc: linux-kernel@vger.kernel.org, Daniel Stone , =?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 2/6] dma-buf/fence: add struct fence_collection Date: Wed, 23 Mar 2016 15:47:23 -0300 Message-Id: <1458758847-21170-3-git-send-email-gustavo@padovan.org> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1458758847-21170-1-git-send-email-gustavo@padovan.org> References: <1458758847-21170-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 The struct aggregates fences that we need to wait on before proceed with some specific operation. In DRM, for example, we may wait for a group of fences to signal before we scanout the buffers related to those fences. Signed-off-by: Gustavo Padovan --- include/linux/fence.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/include/linux/fence.h b/include/linux/fence.h index 605bd88..3d1151f 100644 --- a/include/linux/fence.h +++ b/include/linux/fence.h @@ -104,6 +104,22 @@ struct fence_cb { fence_func_t func; }; +typedef void (*collection_put_func_t)(void *data); + +/** + * struct fence_collection - aggregate fences together + * @num_fences: number of fence in the collection. + * @user_data: user data. + * @func: user callback to put user data. + * @fences: array of @num_fences fences. + */ +struct fence_collection { + int num_fences; + void *user_data; + collection_put_func_t func; + struct fence *fences[]; +}; + /** * struct fence_ops - operations implemented for fence * @get_driver_name: returns the driver name. -- 2.5.0