summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gm20b
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2015-06-23 18:28:00 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2015-07-03 20:59:12 -0400
commit63714e7cc158d0574947c2171a81988ffece2a2a (patch)
tree982f88d7ab69376552506c70651a5e1975161ad3 /drivers/gpu/nvgpu/gm20b
parent4cc1457703462f3743c05a866690d1748e7bd8e8 (diff)
gpu: nvgpu: Implement priv pages
Implement support for privileged pages. Use them for kernel allocated buffers. Change-Id: I720fc441008077b8e2ed218a7a685b8aab2258f0 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/761919
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b')
-rw-r--r--drivers/gpu/nvgpu/gm20b/acr_gm20b.c4
-rw-r--r--drivers/gpu/nvgpu/gm20b/hw_gmmu_gm20b.h12
2 files changed, 14 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/acr_gm20b.c b/drivers/gpu/nvgpu/gm20b/acr_gm20b.c
index a238c523..3a19d6b6 100644
--- a/drivers/gpu/nvgpu/gm20b/acr_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/acr_gm20b.c
@@ -333,7 +333,7 @@ int prepare_ucode_blob(struct gk20a *g)
333 sg_dma_address(sgt->sgl) = 0; 333 sg_dma_address(sgt->sgl) = 0;
334 334
335 g->pmu.wpr_buf.gpu_va = gk20a_gmmu_map(vm, &sgt, wprsize, 335 g->pmu.wpr_buf.gpu_va = gk20a_gmmu_map(vm, &sgt, wprsize,
336 0, gk20a_mem_flag_none); 336 0, gk20a_mem_flag_none, false);
337 gm20b_dbg_pmu("wpr mapped gpu va :%llx\n", g->pmu.wpr_buf.gpu_va); 337 gm20b_dbg_pmu("wpr mapped gpu va :%llx\n", g->pmu.wpr_buf.gpu_va);
338 338
339 /* Discover all managed falcons*/ 339 /* Discover all managed falcons*/
@@ -1323,7 +1323,7 @@ int pmu_exec_gen_bl(struct gk20a *g, void *desc, u8 b_wait_for_halt)
1323 acr->hsbl_ucode.gpu_va = gk20a_gmmu_map(vm, &acr->hsbl_ucode.sgt, 1323 acr->hsbl_ucode.gpu_va = gk20a_gmmu_map(vm, &acr->hsbl_ucode.sgt,
1324 bl_sz, 1324 bl_sz,
1325 0, /* flags */ 1325 0, /* flags */
1326 gk20a_mem_flag_read_only); 1326 gk20a_mem_flag_read_only, false);
1327 if (!acr->hsbl_ucode.gpu_va) { 1327 if (!acr->hsbl_ucode.gpu_va) {
1328 gk20a_err(d, "failed to map pmu ucode memory!!"); 1328 gk20a_err(d, "failed to map pmu ucode memory!!");
1329 goto err_free_ucode; 1329 goto err_free_ucode;
diff --git a/drivers/gpu/nvgpu/gm20b/hw_gmmu_gm20b.h b/drivers/gpu/nvgpu/gm20b/hw_gmmu_gm20b.h
index 9a1c0e71..32b65912 100644
--- a/drivers/gpu/nvgpu/gm20b/hw_gmmu_gm20b.h
+++ b/drivers/gpu/nvgpu/gm20b/hw_gmmu_gm20b.h
@@ -146,6 +146,18 @@ static inline u32 gmmu_pte_valid_false_f(void)
146{ 146{
147 return 0x0; 147 return 0x0;
148} 148}
149static inline u32 gmmu_pte_privilege_w(void)
150{
151 return 0;
152}
153static inline u32 gmmu_pte_privilege_true_f(void)
154{
155 return 0x2;
156}
157static inline u32 gmmu_pte_privilege_false_f(void)
158{
159 return 0x0;
160}
149static inline u32 gmmu_pte_address_sys_f(u32 v) 161static inline u32 gmmu_pte_address_sys_f(u32 v)
150{ 162{
151 return (v & 0xfffffff) << 4; 163 return (v & 0xfffffff) << 4;