summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c7
-rw-r--r--drivers/gpu/nvgpu/gk20a/hw_gr_gk20a.h4
-rw-r--r--drivers/gpu/nvgpu/gm20b/hw_gr_gm20b.h4
3 files changed, 15 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
index b0fd3c0c..6a9e1753 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
@@ -5740,6 +5740,13 @@ int gk20a_gr_isr(struct gk20a *g)
5740 need_reset |= -EFAULT; 5740 need_reset |= -EFAULT;
5741 } 5741 }
5742 5742
5743 if (exception & gr_exception_memfmt_m()) {
5744 u32 memfmt = gk20a_readl(g, gr_memfmt_hww_esr_r());
5745 gk20a_dbg(gpu_dbg_intr, "memfmt exception %08x\n",
5746 memfmt);
5747 gk20a_writel(g, gr_memfmt_hww_esr_r(), memfmt);
5748 }
5749
5743 /* check if a gpc exception has occurred */ 5750 /* check if a gpc exception has occurred */
5744 if (exception & gr_exception_gpc_m() && need_reset == 0) { 5751 if (exception & gr_exception_gpc_m() && need_reset == 0) {
5745 struct channel_gk20a *fault_ch; 5752 struct channel_gk20a *fault_ch;
diff --git a/drivers/gpu/nvgpu/gk20a/hw_gr_gk20a.h b/drivers/gpu/nvgpu/gk20a/hw_gr_gk20a.h
index ff698a51..8fe75614 100644
--- a/drivers/gpu/nvgpu/gk20a/hw_gr_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/hw_gr_gk20a.h
@@ -178,6 +178,10 @@ static inline u32 gr_exception_gpc_m(void)
178{ 178{
179 return 0x1 << 24; 179 return 0x1 << 24;
180} 180}
181static inline u32 gr_exception_memfmt_m(void)
182{
183 return 0x1 << 1;
184}
181static inline u32 gr_exception1_r(void) 185static inline u32 gr_exception1_r(void)
182{ 186{
183 return 0x00400118; 187 return 0x00400118;
diff --git a/drivers/gpu/nvgpu/gm20b/hw_gr_gm20b.h b/drivers/gpu/nvgpu/gm20b/hw_gr_gm20b.h
index 543c7773..868b8fe7 100644
--- a/drivers/gpu/nvgpu/gm20b/hw_gr_gm20b.h
+++ b/drivers/gpu/nvgpu/gm20b/hw_gr_gm20b.h
@@ -166,6 +166,10 @@ static inline u32 gr_exception_gpc_m(void)
166{ 166{
167 return 0x1 << 24; 167 return 0x1 << 24;
168} 168}
169static inline u32 gr_exception_memfmt_m(void)
170{
171 return 0x1 << 1;
172}
169static inline u32 gr_exception1_r(void) 173static inline u32 gr_exception1_r(void)
170{ 174{
171 return 0x00400118; 175 return 0x00400118;