summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common/mc/mc_gv100.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/common/mc/mc_gv100.c')
-rw-r--r--drivers/gpu/nvgpu/common/mc/mc_gv100.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/common/mc/mc_gv100.c b/drivers/gpu/nvgpu/common/mc/mc_gv100.c
index b67f9bbe..77155d14 100644
--- a/drivers/gpu/nvgpu/common/mc/mc_gv100.c
+++ b/drivers/gpu/nvgpu/common/mc/mc_gv100.c
@@ -26,6 +26,8 @@
26#include <nvgpu/io.h> 26#include <nvgpu/io.h>
27#include <nvgpu/mc.h> 27#include <nvgpu/mc.h>
28#include <nvgpu/gk20a.h> 28#include <nvgpu/gk20a.h>
29#include <nvgpu/unit.h>
30#include <nvgpu/bug.h>
29 31
30#include "mc_gp10b.h" 32#include "mc_gp10b.h"
31#include "mc_gv100.h" 33#include "mc_gv100.h"
@@ -88,3 +90,35 @@ bool gv100_mc_is_stall_and_eng_intr_pending(struct gk20a *g, u32 act_eng_id,
88 90
89 return (mc_intr_0 & (eng_intr_mask | stall_intr)) != 0U; 91 return (mc_intr_0 & (eng_intr_mask | stall_intr)) != 0U;
90} 92}
93
94u32 gv100_mc_reset_mask(struct gk20a *g, enum nvgpu_unit unit)
95{
96 u32 mask = 0;
97
98 switch(unit) {
99 case NVGPU_UNIT_FIFO:
100 mask = mc_enable_pfifo_enabled_f();
101 break;
102 case NVGPU_UNIT_PERFMON:
103 mask = mc_enable_perfmon_enabled_f();
104 break;
105 case NVGPU_UNIT_GRAPH:
106 mask = mc_enable_pgraph_enabled_f();
107 break;
108 case NVGPU_UNIT_BLG:
109 mask = mc_enable_blg_enabled_f();
110 break;
111 case NVGPU_UNIT_PWR:
112 mask = mc_enable_pwr_enabled_f();
113 break;
114 case NVGPU_UNIT_NVDEC:
115 mask = mc_enable_nvdec_enabled_f();
116 break;
117 default:
118 nvgpu_err(g, "unknown reset unit %d", unit);
119 BUG();
120 break;
121 }
122
123 return mask;
124}