summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a
diff options
context:
space:
mode:
authorSeema Khowala <seemaj@nvidia.com>2017-03-03 16:49:30 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2017-03-22 13:11:21 -0400
commit971a3c8050184f1defa894310cd572e41b3adc65 (patch)
tree54a7e01b35b568d9b2945c15eb45c0e1189838fb /drivers/gpu/nvgpu/gk20a
parentfcd7fce9bc9ee744a518854995ba9679216e09c8 (diff)
gpu: nvgpu: add mm ops for mmu_fault_pending
This change is needed for t19x mmu fault handling. Change-Id: I7f9190ab305f699401f6b0033b6a93dd8b4fc3cd Signed-off-by: Seema Khowala <seemaj@nvidia.com> Reviewed-on: http://git-master/r/1315201 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.h1
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c2
-rw-r--r--drivers/gpu/nvgpu/gk20a/mm_gk20a.c1
3 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index d5757130..5bf1e02d 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -633,6 +633,7 @@ struct gpu_ops {
633 size_t (*get_vidmem_size)(struct gk20a *g); 633 size_t (*get_vidmem_size)(struct gk20a *g);
634 void (*init_inst_block)(struct mem_desc *inst_block, 634 void (*init_inst_block)(struct mem_desc *inst_block,
635 struct vm_gk20a *vm, u32 big_page_size); 635 struct vm_gk20a *vm, u32 big_page_size);
636 bool (*mmu_fault_pending)(struct gk20a *g);
636 } mm; 637 } mm;
637 struct { 638 struct {
638 int (*init_therm_setup_hw)(struct gk20a *g); 639 int (*init_therm_setup_hw)(struct gk20a *g);
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
index 5a76822f..9f527edd 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
@@ -8625,7 +8625,7 @@ int gk20a_gr_wait_for_sm_lock_down(struct gk20a *g, u32 gpc, u32 tpc,
8625 /* if an mmu fault is pending and mmu debug mode is not 8625 /* if an mmu fault is pending and mmu debug mode is not
8626 * enabled, the sm will never lock down. */ 8626 * enabled, the sm will never lock down. */
8627 if (!mmu_debug_mode_enabled && 8627 if (!mmu_debug_mode_enabled &&
8628 gk20a_fifo_mmu_fault_pending(g)) { 8628 (g->ops.mm.mmu_fault_pending(g))) {
8629 gk20a_err(dev_from_gk20a(g), 8629 gk20a_err(dev_from_gk20a(g),
8630 "GPC%d TPC%d: mmu fault pending," 8630 "GPC%d TPC%d: mmu fault pending,"
8631 " sm will never lock down!", gpc, tpc); 8631 " sm will never lock down!", gpc, tpc);
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
index bb7c7985..eaf8f74a 100644
--- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
@@ -5450,4 +5450,5 @@ void gk20a_init_mm(struct gpu_ops *gops)
5450 gops->mm.bar1_bind = gk20a_mm_bar1_bind; 5450 gops->mm.bar1_bind = gk20a_mm_bar1_bind;
5451 gops->mm.init_inst_block = gk20a_init_inst_block; 5451 gops->mm.init_inst_block = gk20a_init_inst_block;
5452 gops->mm.is_bar1_supported = gk20a_mm_is_bar1_supported; 5452 gops->mm.is_bar1_supported = gk20a_mm_is_bar1_supported;
5453 gops->mm.mmu_fault_pending = gk20a_fifo_mmu_fault_pending;
5453} 5454}