summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/mc_gk20a.c
diff options
context:
space:
mode:
authorMahantesh Kumbar <mkumbar@nvidia.com>2014-12-09 01:15:51 -0500
committerDan Willemsen <dwillemsen@nvidia.com>2015-03-18 15:12:31 -0400
commitd37aa77ab5f0edd3225af31fef389bc066f20fda (patch)
tree8e56d9e8a9cafe8c6f912878a1466ba303561112 /drivers/gpu/nvgpu/gk20a/mc_gk20a.c
parent31f47b8306232565b60d43d7d974699faa997cf3 (diff)
gpu: nvgpu: Allow enabling/disabling MC interrupt
Added method to enable/disable MC interrupt by unit Bug 200064127 Change-Id: I89e794d5b69a2a93642e2df437d6744bf595f021 Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com> Reviewed-on: http://git-master/r/661211 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/mc_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/mc_gk20a.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/mc_gk20a.c b/drivers/gpu/nvgpu/gk20a/mc_gk20a.c
index 4d176403..899eeff7 100644
--- a/drivers/gpu/nvgpu/gk20a/mc_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/mc_gk20a.c
@@ -137,9 +137,27 @@ void mc_gk20a_intr_enable(struct gk20a *g)
137 mc_intr_en_0_inta_hardware_f()); 137 mc_intr_en_0_inta_hardware_f());
138} 138}
139 139
140void mc_gk20a_intr_unit_config(struct gk20a *g, bool enable,
141 bool is_stalling, u32 mask)
142{
143 u32 mask_reg = (is_stalling ? mc_intr_mask_0_r() :
144 mc_intr_mask_1_r());
145
146 if (enable) {
147 gk20a_writel(g, mask_reg,
148 gk20a_readl(g, mask_reg) |
149 mask);
150 } else {
151 gk20a_writel(g, mask_reg,
152 gk20a_readl(g, mask_reg) &
153 ~mask);
154 }
155}
156
140void gk20a_init_mc(struct gpu_ops *gops) 157void gk20a_init_mc(struct gpu_ops *gops)
141{ 158{
142 gops->mc.intr_enable = mc_gk20a_intr_enable; 159 gops->mc.intr_enable = mc_gk20a_intr_enable;
160 gops->mc.intr_unit_config = mc_gk20a_intr_unit_config;
143 gops->mc.isr_stall = mc_gk20a_isr_stall; 161 gops->mc.isr_stall = mc_gk20a_isr_stall;
144 gops->mc.isr_nonstall = mc_gk20a_isr_nonstall; 162 gops->mc.isr_nonstall = mc_gk20a_isr_nonstall;
145 gops->mc.isr_thread_stall = mc_gk20a_intr_thread_stall; 163 gops->mc.isr_thread_stall = mc_gk20a_intr_thread_stall;