summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gv11b/ce_gv11b.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b/ce_gv11b.c')
-rw-r--r--drivers/gpu/nvgpu/gv11b/ce_gv11b.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/ce_gv11b.c b/drivers/gpu/nvgpu/gv11b/ce_gv11b.c
index af87f990..9716c6d6 100644
--- a/drivers/gpu/nvgpu/gv11b/ce_gv11b.c
+++ b/drivers/gpu/nvgpu/gv11b/ce_gv11b.c
@@ -75,14 +75,23 @@ static void gv11b_ce_isr(struct gk20a *g, u32 inst_id, u32 pri_base)
75 gp10b_ce_isr(g, inst_id, pri_base); 75 gp10b_ce_isr(g, inst_id, pri_base);
76} 76}
77 77
78void gv11b_ce_mthd_buffer_fault_in_bar2_fault(struct gk20a *g) 78u32 gv11b_ce_get_num_lce(struct gk20a *g)
79{ 79{
80 u32 reg_val, num_lce, lce, clear_intr; 80 u32 reg_val, num_lce;
81 81
82 reg_val = gk20a_readl(g, top_num_ces_r()); 82 reg_val = gk20a_readl(g, top_num_ces_r());
83 num_lce = top_num_ces_value_v(reg_val); 83 num_lce = top_num_ces_value_v(reg_val);
84 nvgpu_log_info(g, "num LCE: %d", num_lce); 84 nvgpu_log_info(g, "num LCE: %d", num_lce);
85 85
86 return num_lce;
87}
88
89void gv11b_ce_mthd_buffer_fault_in_bar2_fault(struct gk20a *g)
90{
91 u32 reg_val, num_lce, lce, clear_intr;
92
93 num_lce = gv11b_ce_get_num_lce(g);
94
86 for (lce = 0; lce < num_lce; lce++) { 95 for (lce = 0; lce < num_lce; lce++) {
87 reg_val = gk20a_readl(g, ce_intr_status_r(lce)); 96 reg_val = gk20a_readl(g, ce_intr_status_r(lce));
88 if (reg_val & ce_intr_status_mthd_buffer_fault_pending_f()) { 97 if (reg_val & ce_intr_status_mthd_buffer_fault_pending_f()) {