summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorMahantesh Kumbar <mkumbar@nvidia.com>2017-09-20 14:08:03 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-10-21 20:34:28 -0400
commit50a1cc069a6b28757de1af1617c0f9f037b60c6a (patch)
treec635fe4e1fd0c2f4ef405766eb65da553f9a2cb9 /drivers
parent8882014731730ef7febb1e2236e82a9d409f77ec (diff)
gpu: nvgpu: memory unlock HAL support
- Created "mem_unlock" HAL under fb to support memory unlock - Called as part of gk20a_finalize_poweron() if memory unlock support needed by checking HAL - Assigned "mem_unlock" HAL to NULL for chips which don't need memory unlocks. Change-Id: I68d0910f15d293feaacfcbf6bd17ecccd3b5219d Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com> (cherry picked from commit 586894eb84860bbbe4c75dae4715bdf27432a480) Reviewed-on: https://git-master.nvidia.com/r/1564703 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.c8
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.h1
-rw-r--r--drivers/gpu/nvgpu/gm20b/hal_gm20b.c1
-rw-r--r--drivers/gpu/nvgpu/gp106/hal_gp106.c1
-rw-r--r--drivers/gpu/nvgpu/gp10b/hal_gp10b.c1
5 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c
index d203a335..2d09c0bb 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.c
@@ -192,6 +192,14 @@ int gk20a_finalize_poweron(struct gk20a *g)
192 } 192 }
193 } 193 }
194 194
195 if (g->ops.fb.mem_unlock) {
196 err = g->ops.fb.mem_unlock(g);
197 if (err) {
198 nvgpu_err(g, "failed to unlock memory");
199 goto done;
200 }
201 }
202
195 err = g->ops.fifo.reset_enable_hw(g); 203 err = g->ops.fifo.reset_enable_hw(g);
196 204
197 if (err) { 205 if (err) {
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index 3fcad1cf..c04c97ca 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -445,6 +445,7 @@ struct gpu_ops {
445 void (*set_debug_mode)(struct gk20a *g, bool enable); 445 void (*set_debug_mode)(struct gk20a *g, bool enable);
446 void (*tlb_invalidate)(struct gk20a *g, struct nvgpu_mem *pdb); 446 void (*tlb_invalidate)(struct gk20a *g, struct nvgpu_mem *pdb);
447 void (*hub_isr)(struct gk20a *g); 447 void (*hub_isr)(struct gk20a *g);
448 int (*mem_unlock)(struct gk20a *g);
448 } fb; 449 } fb;
449 struct { 450 struct {
450 void (*slcg_bus_load_gating_prod)(struct gk20a *g, bool prod); 451 void (*slcg_bus_load_gating_prod)(struct gk20a *g, bool prod);
diff --git a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
index e146d3ca..269fd7f1 100644
--- a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
@@ -308,6 +308,7 @@ static const struct gpu_ops gm20b_ops = {
308 .is_debug_mode_enabled = gm20b_fb_debug_mode_enabled, 308 .is_debug_mode_enabled = gm20b_fb_debug_mode_enabled,
309 .set_debug_mode = gm20b_fb_set_debug_mode, 309 .set_debug_mode = gm20b_fb_set_debug_mode,
310 .tlb_invalidate = gk20a_fb_tlb_invalidate, 310 .tlb_invalidate = gk20a_fb_tlb_invalidate,
311 .mem_unlock = NULL,
311 }, 312 },
312 .clock_gating = { 313 .clock_gating = {
313 .slcg_bus_load_gating_prod = 314 .slcg_bus_load_gating_prod =
diff --git a/drivers/gpu/nvgpu/gp106/hal_gp106.c b/drivers/gpu/nvgpu/gp106/hal_gp106.c
index 54960b96..1246ee7f 100644
--- a/drivers/gpu/nvgpu/gp106/hal_gp106.c
+++ b/drivers/gpu/nvgpu/gp106/hal_gp106.c
@@ -373,6 +373,7 @@ static const struct gpu_ops gp106_ops = {
373 .is_debug_mode_enabled = gm20b_fb_debug_mode_enabled, 373 .is_debug_mode_enabled = gm20b_fb_debug_mode_enabled,
374 .set_debug_mode = gm20b_fb_set_debug_mode, 374 .set_debug_mode = gm20b_fb_set_debug_mode,
375 .tlb_invalidate = gk20a_fb_tlb_invalidate, 375 .tlb_invalidate = gk20a_fb_tlb_invalidate,
376 .mem_unlock = NULL,
376 }, 377 },
377 .clock_gating = { 378 .clock_gating = {
378 .slcg_bus_load_gating_prod = 379 .slcg_bus_load_gating_prod =
diff --git a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c
index b40ce4a1..b80722b8 100644
--- a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c
+++ b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c
@@ -327,6 +327,7 @@ static const struct gpu_ops gp10b_ops = {
327 .is_debug_mode_enabled = gm20b_fb_debug_mode_enabled, 327 .is_debug_mode_enabled = gm20b_fb_debug_mode_enabled,
328 .set_debug_mode = gm20b_fb_set_debug_mode, 328 .set_debug_mode = gm20b_fb_set_debug_mode,
329 .tlb_invalidate = gk20a_fb_tlb_invalidate, 329 .tlb_invalidate = gk20a_fb_tlb_invalidate,
330 .mem_unlock = NULL,
330 }, 331 },
331 .clock_gating = { 332 .clock_gating = {
332 .slcg_bus_load_gating_prod = 333 .slcg_bus_load_gating_prod =