summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gp10b/mc_gp10b.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gp10b/mc_gp10b.c')
-rw-r--r--drivers/gpu/nvgpu/gp10b/mc_gp10b.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gp10b/mc_gp10b.c b/drivers/gpu/nvgpu/gp10b/mc_gp10b.c
index 56db6750..063bda7c 100644
--- a/drivers/gpu/nvgpu/gp10b/mc_gp10b.c
+++ b/drivers/gpu/nvgpu/gp10b/mc_gp10b.c
@@ -32,6 +32,17 @@
32 32
33#include <nvgpu/hw/gp10b/hw_mc_gp10b.h> 33#include <nvgpu/hw/gp10b/hw_mc_gp10b.h>
34 34
35#define MAX_MC_INTR_REGS 2U
36
37void mc_gp10b_intr_mask(struct gk20a *g)
38{
39 nvgpu_writel(g, mc_intr_en_clear_r(NVGPU_MC_INTR_STALLING),
40 0xffffffffU);
41
42 nvgpu_writel(g, mc_intr_en_clear_r(NVGPU_MC_INTR_NONSTALLING),
43 0xffffffffU);
44}
45
35void mc_gp10b_intr_enable(struct gk20a *g) 46void mc_gp10b_intr_enable(struct gk20a *g)
36{ 47{
37 u32 eng_intr_mask = gk20a_fifo_engine_interrupt_mask(g); 48 u32 eng_intr_mask = gk20a_fifo_engine_interrupt_mask(g);
@@ -195,3 +206,17 @@ bool mc_gp10b_is_intr1_pending(struct gk20a *g,
195 206
196 return is_pending; 207 return is_pending;
197} 208}
209
210void mc_gp10b_log_pending_intrs(struct gk20a *g)
211{
212 u32 i, intr;
213
214 for (i = 0; i < MAX_MC_INTR_REGS; i++) {
215 intr = nvgpu_readl(g, mc_intr_r(i));
216 if (intr == 0U) {
217 continue;
218 }
219 nvgpu_info(g, "Pending intr%d=0x%08x", i, intr);
220 }
221
222}