From 954117fe11481b79c9c525f7c75384ac40b64cbe Mon Sep 17 00:00:00 2001 From: Lauri Peltonen Date: Tue, 25 Feb 2014 14:44:57 +0200 Subject: gpu: nvgpu: Support sync framework with semaphores Add sync_gk20a.c/h that support creating Android sync fence fd's from gk20a semaphores. Bug 1445450 Change-Id: I42272996721ceec38ba5510eae6770720bc9dd10 Signed-off-by: Lauri Peltonen Reviewed-on: http://git-master/r/374843 Reviewed-by: Terje Bergstrom Tested-by: Terje Bergstrom --- drivers/gpu/nvgpu/gk20a/sync_gk20a.h | 46 ++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 drivers/gpu/nvgpu/gk20a/sync_gk20a.h (limited to 'drivers/gpu/nvgpu/gk20a/sync_gk20a.h') diff --git a/drivers/gpu/nvgpu/gk20a/sync_gk20a.h b/drivers/gpu/nvgpu/gk20a/sync_gk20a.h new file mode 100644 index 00000000..49597f06 --- /dev/null +++ b/drivers/gpu/nvgpu/gk20a/sync_gk20a.h @@ -0,0 +1,46 @@ +/* + * drivers/video/tegra/host/gk20a/sync_gk20a.h + * + * GK20A Sync Framework Integration + * + * Copyright (c) 2014, NVIDIA CORPORATION. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + */ + +#ifndef _GK20A_SYNC_H_ +#define _GK20A_SYNC_H_ + +#include + +struct sync_timeline; +struct sync_fence; +struct sync_pt; +struct gk20a_semaphore; + +#ifdef CONFIG_SYNC +struct sync_timeline *gk20a_sync_timeline_create(const char *fmt, ...); +void gk20a_sync_timeline_destroy(struct sync_timeline *); +void gk20a_sync_timeline_signal(struct sync_timeline *); +int gk20a_sync_fence_create(struct sync_timeline *, + struct gk20a_semaphore *, + struct sync_fence *dependency, + const char *fmt, ...); +struct sync_fence *gk20a_sync_fence_fdget(int fd); +#else +static inline void gk20a_sync_timeline_destroy(struct sync_timeline *obj) {} +static inline void gk20a_sync_timeline_signal(struct sync_timeline *obj) {} +static inline struct sync_fence *gk20a_sync_fence_fdget(int fd) +{ + return NULL; +} +#endif + +#endif -- cgit v1.2.2