summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2015-01-29 15:46:59 -0500
committerDan Willemsen <dwillemsen@nvidia.com>2015-04-04 22:01:35 -0400
commit2503a45f46fb3f56786769cb8e930085bf1359ec (patch)
tree5af79ffdf7805c41fad9092d8b0eaa2d0daa5078
parent95548fa880f3a31d900cfb9c4b2e30e7dfacadac (diff)
gpu: nvgpu: Catch DS exception
Catch DS exception and write an error to UART. Change-Id: Iaad9813c48191f0d3d734d4af264b976a3818672 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/679142
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c6
-rw-r--r--drivers/gpu/nvgpu/gk20a/hw_gr_gk20a.h4
2 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
index e4e0d163..e8340216 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
@@ -5612,6 +5612,12 @@ int gk20a_gr_isr(struct gk20a *g)
5612 NVGPU_CHANNEL_GR_ERROR_SW_NOTIFY); 5612 NVGPU_CHANNEL_GR_ERROR_SW_NOTIFY);
5613 } 5613 }
5614 5614
5615 if (exception & gr_exception_ds_m()) {
5616 u32 ds = gk20a_readl(g, gr_ds_hww_esr_r());
5617 gk20a_dbg(gpu_dbg_intr, "ds exception %08x\n", ds);
5618 gk20a_writel(g, gr_ds_hww_esr_r(), ds);
5619 }
5620
5615 gk20a_writel(g, gr_intr_r(), gr_intr_exception_reset_f()); 5621 gk20a_writel(g, gr_intr_r(), gr_intr_exception_reset_f());
5616 gr_intr &= ~gr_intr_exception_pending_f(); 5622 gr_intr &= ~gr_intr_exception_pending_f();
5617 } 5623 }
diff --git a/drivers/gpu/nvgpu/gk20a/hw_gr_gk20a.h b/drivers/gpu/nvgpu/gk20a/hw_gr_gk20a.h
index 8a6c2f23..2d63147a 100644
--- a/drivers/gpu/nvgpu/gk20a/hw_gr_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/hw_gr_gk20a.h
@@ -182,6 +182,10 @@ static inline u32 gr_exception_memfmt_m(void)
182{ 182{
183 return 0x1 << 1; 183 return 0x1 << 1;
184} 184}
185static inline u32 gr_exception_ds_m(void)
186{
187 return 0x1 << 4;
188}
185static inline u32 gr_exception1_r(void) 189static inline u32 gr_exception1_r(void)
186{ 190{
187 return 0x00400118; 191 return 0x00400118;