summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/include
diff options
context:
space:
mode:
authorAlex Waterman <alexw@nvidia.com>2018-03-01 23:47:25 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2018-03-03 01:10:14 -0500
commit89fbf39a05483917c0a9f3453fd94c724bc37375 (patch)
tree55fdd147c0a7eb80b8fc50ecd9f4b0c80f1322f1 /drivers/gpu/nvgpu/include
parentef116a6e632522def7493921666c3241318ce100 (diff)
Revert "Revert "gpu: nvgpu: Get coherency on gv100 + NVLINK working""
This reverts commit 5a35a95654d561fce09a3b9abf6b82bb7a29d74b. JIRA EVLR-2333 Change-Id: I923c32496c343d39d34f6d406c38a9f6ce7dc6e0 Signed-off-by: Alex Waterman <alexw@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1667167 Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/include')
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/enabled.h4
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/nvgpu_mem.h23
2 files changed, 19 insertions, 8 deletions
diff --git a/drivers/gpu/nvgpu/include/nvgpu/enabled.h b/drivers/gpu/nvgpu/include/nvgpu/enabled.h
index a3d9df24..24748a19 100644
--- a/drivers/gpu/nvgpu/include/nvgpu/enabled.h
+++ b/drivers/gpu/nvgpu/include/nvgpu/enabled.h
@@ -75,8 +75,8 @@ struct gk20a;
75#define NVGPU_SUPPORT_MAP_DIRECT_KIND_CTRL 24 75#define NVGPU_SUPPORT_MAP_DIRECT_KIND_CTRL 24
76/* Support batch mapping */ 76/* Support batch mapping */
77#define NVGPU_SUPPORT_MAP_BUFFER_BATCH 25 77#define NVGPU_SUPPORT_MAP_BUFFER_BATCH 25
78/* Support DMA coherence */ 78/* Use coherent aperture for sysmem. */
79#define NVGPU_DMA_COHERENT 26 79#define NVGPU_USE_COHERENT_SYSMEM 26
80/* Use physical scatter tables instead of IOMMU */ 80/* Use physical scatter tables instead of IOMMU */
81#define NVGPU_MM_USE_PHYSICAL_SG 27 81#define NVGPU_MM_USE_PHYSICAL_SG 27
82 82
diff --git a/drivers/gpu/nvgpu/include/nvgpu/nvgpu_mem.h b/drivers/gpu/nvgpu/include/nvgpu/nvgpu_mem.h
index 04e947e0..373c3eef 100644
--- a/drivers/gpu/nvgpu/include/nvgpu/nvgpu_mem.h
+++ b/drivers/gpu/nvgpu/include/nvgpu/nvgpu_mem.h
@@ -25,6 +25,7 @@
25 25
26#include <nvgpu/types.h> 26#include <nvgpu/types.h>
27#include <nvgpu/list.h> 27#include <nvgpu/list.h>
28#include <nvgpu/enabled.h>
28 29
29#ifdef __KERNEL__ 30#ifdef __KERNEL__
30#include <nvgpu/linux/nvgpu_mem.h> 31#include <nvgpu/linux/nvgpu_mem.h>
@@ -51,6 +52,10 @@ struct nvgpu_page_alloc;
51enum nvgpu_aperture { 52enum nvgpu_aperture {
52 APERTURE_INVALID = 0, /* unallocated or N/A */ 53 APERTURE_INVALID = 0, /* unallocated or N/A */
53 APERTURE_SYSMEM, 54 APERTURE_SYSMEM,
55
56 /* Don't use directly. Use APERTURE_SYSMEM, this is used internally. */
57 __APERTURE_SYSMEM_COH,
58
54 APERTURE_VIDMEM 59 APERTURE_VIDMEM
55}; 60};
56 61
@@ -195,12 +200,18 @@ nvgpu_mem_from_clear_list_entry(struct nvgpu_list_node *node)
195 clear_list_entry)); 200 clear_list_entry));
196}; 201};
197 202
198static inline const char *nvgpu_aperture_str(enum nvgpu_aperture aperture) 203static inline const char *nvgpu_aperture_str(struct gk20a *g,
204 enum nvgpu_aperture aperture)
199{ 205{
200 switch (aperture) { 206 switch (aperture) {
201 case APERTURE_INVALID: return "INVAL"; 207 case APERTURE_INVALID:
202 case APERTURE_SYSMEM: return "SYSMEM"; 208 return "INVAL";
203 case APERTURE_VIDMEM: return "VIDMEM"; 209 case APERTURE_SYSMEM:
210 return "SYSMEM";
211 case __APERTURE_SYSMEM_COH:
212 return "SYSCOH";
213 case APERTURE_VIDMEM:
214 return "VIDMEM";
204 }; 215 };
205 return "UNKNOWN"; 216 return "UNKNOWN";
206} 217}
@@ -332,9 +343,9 @@ u64 nvgpu_mem_get_addr(struct gk20a *g, struct nvgpu_mem *mem);
332u64 nvgpu_mem_get_phys_addr(struct gk20a *g, struct nvgpu_mem *mem); 343u64 nvgpu_mem_get_phys_addr(struct gk20a *g, struct nvgpu_mem *mem);
333 344
334u32 __nvgpu_aperture_mask(struct gk20a *g, enum nvgpu_aperture aperture, 345u32 __nvgpu_aperture_mask(struct gk20a *g, enum nvgpu_aperture aperture,
335 u32 sysmem_mask, u32 vidmem_mask); 346 u32 sysmem_mask, u32 sysmem_coh_mask, u32 vidmem_mask);
336u32 nvgpu_aperture_mask(struct gk20a *g, struct nvgpu_mem *mem, 347u32 nvgpu_aperture_mask(struct gk20a *g, struct nvgpu_mem *mem,
337 u32 sysmem_mask, u32 vidmem_mask); 348 u32 sysmem_mask, u32 sysmem_coh_mask, u32 vidmem_mask);
338 349
339u64 nvgpu_mem_iommu_translate(struct gk20a *g, u64 phys); 350u64 nvgpu_mem_iommu_translate(struct gk20a *g, u64 phys);
340 351