diff options
author | Mahantesh Kumbar <mkumbar@nvidia.com> | 2014-12-09 01:15:51 -0500 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2015-03-18 15:12:31 -0400 |
commit | d37aa77ab5f0edd3225af31fef389bc066f20fda (patch) | |
tree | 8e56d9e8a9cafe8c6f912878a1466ba303561112 /drivers/gpu/nvgpu/gk20a/mc_gk20a.c | |
parent | 31f47b8306232565b60d43d7d974699faa997cf3 (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.c | 18 |
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 | ||
140 | void 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 | |||
140 | void gk20a_init_mc(struct gpu_ops *gops) | 157 | void 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; |