From 03164b0f4abeb06d4b5207531b97f11fe4a860dd Mon Sep 17 00:00:00 2001 From: Alex Waterman Date: Thu, 9 Jun 2016 16:03:17 -0700 Subject: gpu: nvgpu: Allow nvgpu sync_pts to be introspected Allow nvgpu to identify sync_pts that were made by nvgpu so that the underlying data structures can be accessed. This is important for the semaphore fast-path that allows nvgpu to skip doing a long CPU wait on a sync_fence. Bug 1732449 JIRA DNVGPU-12 Change-Id: Iea43de21d2d7a4e75db6b6dbf24efb78ce64d619 Signed-off-by: Alex Waterman Reviewed-on: http://git-master/r/1162688 Reviewed-by: Terje Bergstrom --- drivers/gpu/nvgpu/gk20a/sync_gk20a.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (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 index e9c26221..f885febd 100644 --- a/drivers/gpu/nvgpu/gk20a/sync_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/sync_gk20a.h @@ -19,11 +19,23 @@ #define _GK20A_SYNC_H_ #include +#include struct sync_timeline; struct sync_fence; struct sync_pt; struct gk20a_semaphore; +struct fence; + +int __gk20a_is_gk20a_sync_pt_inst(struct sync_pt *pt); +int gk20a_is_gk20a_sync_pt_inst(struct fence *f); +int gk20a_is_sema_backed_sync_fence(struct sync_fence *fence); + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0) +struct gk20a_semaphore *gk20a_sync_pt_inst_get_sema(struct fence *f); +#else +struct gk20a_semaphore *gk20a_sync_pt_inst_get_sema(struct sync_pt *pt); +#endif #ifdef CONFIG_SYNC struct sync_timeline *gk20a_sync_timeline_create(const char *fmt, ...); -- cgit v1.2.2