summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/fence_gk20a.c
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2016-04-06 06:33:44 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2016-04-15 11:11:14 -0400
commitb6dc4315a4c7fa817334797cc2a4b9fb3fbfd55f (patch)
tree661626690667ed1d2bb9ef72ec7062added33235 /drivers/gpu/nvgpu/gk20a/fence_gk20a.c
parentd369dca4ac742fed024b54d766bb1723916b7d87 (diff)
gpu: nvgpu: support kernel-3.10 version
Make necessary changes to support nvgpu on kernel-3.10 This includes below changes - PROBE_PREFER_ASYNCHRONOUS is defined only for K3.10 - Fence handling and struct sync_fence is different between K3.10 and K3.18 - variable status in struct sync_fence is atomic on K3.18 whereas it is int on K3.10 - if SOC == T132, set soc_name = "tegra13x" - ioremap_cache() is not defined on K3.10 ARM versions, hence use ioremap_cached() Bug 200188753 Change-Id: I18d77eb1404e15054e8510d67c9a61c0f1883e2b Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/1121092 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/fence_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/fence_gk20a.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/fence_gk20a.c b/drivers/gpu/nvgpu/gk20a/fence_gk20a.c
index f41ca767..1bda5902 100644
--- a/drivers/gpu/nvgpu/gk20a/fence_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/fence_gk20a.c
@@ -15,6 +15,7 @@
15 15
16#include <linux/gk20a.h> 16#include <linux/gk20a.h>
17#include <linux/file.h> 17#include <linux/file.h>
18#include <linux/version.h>
18 19
19#include "gk20a.h" 20#include "gk20a.h"
20#include "semaphore_gk20a.h" 21#include "semaphore_gk20a.h"
@@ -153,10 +154,17 @@ struct gk20a_fence *gk20a_fence_from_semaphore(
153 struct sync_fence *sync_fence = NULL; 154 struct sync_fence *sync_fence = NULL;
154 155
155#ifdef CONFIG_SYNC 156#ifdef CONFIG_SYNC
157#if LINUX_VERSION_CODE < KERNEL_VERSION(3,18,0)
158 sync_fence = gk20a_sync_fence_create(timeline, semaphore,
159 dependency, "f-gk20a-0x%04llx",
160 ((uintptr_t)(void *)semaphore->value) &
161 0xffff);
162#else
156 sync_fence = gk20a_sync_fence_create(timeline, semaphore, 163 sync_fence = gk20a_sync_fence_create(timeline, semaphore,
157 dependency, "f-gk20a-0x%04llx", 164 dependency, "f-gk20a-0x%04llx",
158 ((u64)(void *)semaphore->value) & 165 ((u64)(void *)semaphore->value) &
159 0xffff); 166 0xffff);
167#endif
160 if (!sync_fence) 168 if (!sync_fence)
161 return NULL; 169 return NULL;
162#endif 170#endif