diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 7 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/hw_gr_gk20a.h | 4 |
2 files changed, 11 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 | } |
181 | static inline u32 gr_exception_memfmt_m(void) | ||
182 | { | ||
183 | return 0x1 << 1; | ||
184 | } | ||
181 | static inline u32 gr_exception1_r(void) | 185 | static inline u32 gr_exception1_r(void) |
182 | { | 186 | { |
183 | return 0x00400118; | 187 | return 0x00400118; |