summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common/linux
diff options
context:
space:
mode:
authorDebarshi Dutta <ddutta@nvidia.com>2018-04-24 01:08:30 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-05-10 11:40:36 -0400
commit4f40637c580c5f25f34f45c2c16b5332104897bc (patch)
tree997eb7390801e3159611d59e0b2f149e43d14470 /drivers/gpu/nvgpu/common/linux
parent70e69e2686527990865b221a60e0ec1e9a53d316 (diff)
gpu: nvgpu: remove sync_fence dependencies from fence_gk20a
Replaced all instances of sync_fence in gk20a_fence* code with nvgpu_os_fence. Added the API install_fence for the nvgpu_os_fence abstraction. sync_fence mechanism and its dependencies are completely removed from the fence_gk20a methods. Due to the recent os_fence changes and the changes to fence_gk20a, we can finally get rid of all the CONFIG_SYNCS present in the submit path. JIRA NVGPU-66 Change-Id: I3551dab04b93b1e94db83fc102a41872be89e9ed Signed-off-by: Debarshi Dutta <ddutta@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1701245 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/common/linux')
-rw-r--r--drivers/gpu/nvgpu/common/linux/os_fence_android.c8
-rw-r--r--drivers/gpu/nvgpu/common/linux/os_fence_android_sema.c1
-rw-r--r--drivers/gpu/nvgpu/common/linux/os_fence_android_syncpt.c1
3 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/os_fence_android.c b/drivers/gpu/nvgpu/common/linux/os_fence_android.c
index d8f70639..9be8c6c0 100644
--- a/drivers/gpu/nvgpu/common/linux/os_fence_android.c
+++ b/drivers/gpu/nvgpu/common/linux/os_fence_android.c
@@ -52,6 +52,14 @@ void nvgpu_os_fence_android_drop_ref(struct nvgpu_os_fence *s)
52 nvgpu_os_fence_clear(s); 52 nvgpu_os_fence_clear(s);
53} 53}
54 54
55void nvgpu_os_fence_android_install_fd(struct nvgpu_os_fence *s, int fd)
56{
57 struct sync_fence *fence = nvgpu_get_sync_fence(s);
58
59 sync_fence_get(fence);
60 sync_fence_install(fence, fd);
61}
62
55int nvgpu_os_fence_fdget(struct nvgpu_os_fence *fence_out, 63int nvgpu_os_fence_fdget(struct nvgpu_os_fence *fence_out,
56 struct channel_gk20a *c, int fd) 64 struct channel_gk20a *c, int fd)
57{ 65{
diff --git a/drivers/gpu/nvgpu/common/linux/os_fence_android_sema.c b/drivers/gpu/nvgpu/common/linux/os_fence_android_sema.c
index b61bd893..d4aeb6ed 100644
--- a/drivers/gpu/nvgpu/common/linux/os_fence_android_sema.c
+++ b/drivers/gpu/nvgpu/common/linux/os_fence_android_sema.c
@@ -69,6 +69,7 @@ int nvgpu_os_fence_sema_wait_gen_cmd(struct nvgpu_os_fence *s,
69static const struct nvgpu_os_fence_ops sema_ops = { 69static const struct nvgpu_os_fence_ops sema_ops = {
70 .program_waits = nvgpu_os_fence_sema_wait_gen_cmd, 70 .program_waits = nvgpu_os_fence_sema_wait_gen_cmd,
71 .drop_ref = nvgpu_os_fence_android_drop_ref, 71 .drop_ref = nvgpu_os_fence_android_drop_ref,
72 .install_fence = nvgpu_os_fence_android_install_fd,
72}; 73};
73 74
74int nvgpu_os_fence_sema_create( 75int nvgpu_os_fence_sema_create(
diff --git a/drivers/gpu/nvgpu/common/linux/os_fence_android_syncpt.c b/drivers/gpu/nvgpu/common/linux/os_fence_android_syncpt.c
index 76def831..b3712011 100644
--- a/drivers/gpu/nvgpu/common/linux/os_fence_android_syncpt.c
+++ b/drivers/gpu/nvgpu/common/linux/os_fence_android_syncpt.c
@@ -88,6 +88,7 @@ int nvgpu_os_fence_syncpt_wait_gen_cmd(struct nvgpu_os_fence *s,
88static const struct nvgpu_os_fence_ops syncpt_ops = { 88static const struct nvgpu_os_fence_ops syncpt_ops = {
89 .program_waits = nvgpu_os_fence_syncpt_wait_gen_cmd, 89 .program_waits = nvgpu_os_fence_syncpt_wait_gen_cmd,
90 .drop_ref = nvgpu_os_fence_android_drop_ref, 90 .drop_ref = nvgpu_os_fence_android_drop_ref,
91 .install_fence = nvgpu_os_fence_android_install_fd,
91}; 92};
92 93
93int nvgpu_os_fence_syncpt_create( 94int nvgpu_os_fence_syncpt_create(