diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 8 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/include/nvgpu/hw/gk20a/hw_gr_gk20a.h | 4 |
2 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index 462af65f..0fd27598 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c | |||
@@ -6598,6 +6598,14 @@ int gk20a_gr_isr(struct gk20a *g) | |||
6598 | need_reset |= -EFAULT; | 6598 | need_reset |= -EFAULT; |
6599 | } | 6599 | } |
6600 | 6600 | ||
6601 | if (exception & gr_exception_sked_m()) { | ||
6602 | u32 sked = gk20a_readl(g, gr_sked_hww_esr_r()); | ||
6603 | |||
6604 | nvgpu_err(g, "sked exception %08x", sked); | ||
6605 | gk20a_writel(g, gr_sked_hww_esr_r(), | ||
6606 | gr_sked_hww_esr_reset_active_f()); | ||
6607 | } | ||
6608 | |||
6601 | gk20a_writel(g, gr_intr_r(), gr_intr_exception_reset_f()); | 6609 | gk20a_writel(g, gr_intr_r(), gr_intr_exception_reset_f()); |
6602 | gr_intr &= ~gr_intr_exception_pending_f(); | 6610 | gr_intr &= ~gr_intr_exception_pending_f(); |
6603 | 6611 | ||
diff --git a/drivers/gpu/nvgpu/include/nvgpu/hw/gk20a/hw_gr_gk20a.h b/drivers/gpu/nvgpu/include/nvgpu/hw/gk20a/hw_gr_gk20a.h index 455eef90..983f1cfe 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/hw/gk20a/hw_gr_gk20a.h +++ b/drivers/gpu/nvgpu/include/nvgpu/hw/gk20a/hw_gr_gk20a.h | |||
@@ -186,6 +186,10 @@ static inline u32 gr_exception_ds_m(void) | |||
186 | { | 186 | { |
187 | return 0x1 << 4; | 187 | return 0x1 << 4; |
188 | } | 188 | } |
189 | static inline u32 gr_exception_sked_m(void) | ||
190 | { | ||
191 | return 0x1 << 8; | ||
192 | } | ||
189 | static inline u32 gr_exception1_r(void) | 193 | static inline u32 gr_exception1_r(void) |
190 | { | 194 | { |
191 | return 0x00400118; | 195 | return 0x00400118; |