summaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/nvgpu/common/mm/gmmu.c2
-rw-r--r--drivers/gpu/nvgpu/gp10b/mm_gp10b.c9
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/gmmu.h2
3 files changed, 10 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/common/mm/gmmu.c b/drivers/gpu/nvgpu/common/mm/gmmu.c
index 602dfb3b..55fbcd3f 100644
--- a/drivers/gpu/nvgpu/common/mm/gmmu.c
+++ b/drivers/gpu/nvgpu/common/mm/gmmu.c
@@ -747,6 +747,7 @@ u64 gk20a_locked_gmmu_map(struct vm_gk20a *vm,
747 .rw_flag = rw_flag, 747 .rw_flag = rw_flag,
748 .sparse = sparse, 748 .sparse = sparse,
749 .priv = priv, 749 .priv = priv,
750 .coherent = flags & NVGPU_AS_MAP_BUFFER_FLAGS_IO_COHERENT,
750 .valid = !(flags & NVGPU_AS_MAP_BUFFER_FLAGS_UNMAPPED_PTE), 751 .valid = !(flags & NVGPU_AS_MAP_BUFFER_FLAGS_UNMAPPED_PTE),
751 .aperture = aperture 752 .aperture = aperture
752 }; 753 };
@@ -805,6 +806,7 @@ void gk20a_locked_gmmu_unmap(struct vm_gk20a *vm,
805 .rw_flag = rw_flag, 806 .rw_flag = rw_flag,
806 .sparse = sparse, 807 .sparse = sparse,
807 .priv = 0, 808 .priv = 0,
809 .coherent = 0,
808 .valid = 0, 810 .valid = 0,
809 .aperture = APERTURE_INVALID, 811 .aperture = APERTURE_INVALID,
810 }; 812 };
diff --git a/drivers/gpu/nvgpu/gp10b/mm_gp10b.c b/drivers/gpu/nvgpu/gp10b/mm_gp10b.c
index 590dd960..bdc30143 100644
--- a/drivers/gpu/nvgpu/gp10b/mm_gp10b.c
+++ b/drivers/gpu/nvgpu/gp10b/mm_gp10b.c
@@ -230,9 +230,12 @@ static void __update_pte(struct vm_gk20a *vm,
230 u32 pte_addr = attrs->aperture == APERTURE_SYSMEM ? 230 u32 pte_addr = attrs->aperture == APERTURE_SYSMEM ?
231 gmmu_new_pte_address_sys_f(phys_shifted) : 231 gmmu_new_pte_address_sys_f(phys_shifted) :
232 gmmu_new_pte_address_vid_f(phys_shifted); 232 gmmu_new_pte_address_vid_f(phys_shifted);
233 u32 pte_tgt = __nvgpu_aperture_mask(g, attrs->aperture, 233 u32 pte_tgt = __nvgpu_aperture_mask(g,
234 gmmu_new_pte_aperture_sys_mem_ncoh_f(), 234 attrs->aperture,
235 gmmu_new_pte_aperture_video_memory_f()); 235 attrs->coherent ?
236 gmmu_new_pte_aperture_sys_mem_coh_f() :
237 gmmu_new_pte_aperture_sys_mem_ncoh_f(),
238 gmmu_new_pte_aperture_video_memory_f());
236 239
237 pte_w[0] = pte_valid | pte_addr | pte_tgt; 240 pte_w[0] = pte_valid | pte_addr | pte_tgt;
238 241
diff --git a/drivers/gpu/nvgpu/include/nvgpu/gmmu.h b/drivers/gpu/nvgpu/include/nvgpu/gmmu.h
index eff87c31..47af2f75 100644
--- a/drivers/gpu/nvgpu/include/nvgpu/gmmu.h
+++ b/drivers/gpu/nvgpu/include/nvgpu/gmmu.h
@@ -149,6 +149,7 @@ struct nvgpu_gmmu_pd {
149 * rw_flag: Flag from enum gk20a_mem_rw_flag 149 * rw_flag: Flag from enum gk20a_mem_rw_flag
150 * sparse: Set if the mapping should be sparse. 150 * sparse: Set if the mapping should be sparse.
151 * priv: Privilidged mapping. 151 * priv: Privilidged mapping.
152 * coherent: Set if the mapping should be IO coherent.
152 * valid: Set if the PTE should be marked valid. 153 * valid: Set if the PTE should be marked valid.
153 * aperture: VIDMEM or SYSMEM. 154 * aperture: VIDMEM or SYSMEM.
154 * debug: When set print debugging info. 155 * debug: When set print debugging info.
@@ -166,6 +167,7 @@ struct nvgpu_gmmu_attrs {
166 int rw_flag; 167 int rw_flag;
167 bool sparse; 168 bool sparse;
168 bool priv; 169 bool priv;
170 bool coherent;
169 bool valid; 171 bool valid;
170 enum nvgpu_aperture aperture; 172 enum nvgpu_aperture aperture;
171 bool debug; 173 bool debug;