summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
diff options
context:
space:
mode:
authorseshendra Gadagottu <sgadagottu@nvidia.com>2017-10-05 20:36:51 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-10-23 13:46:11 -0400
commit9712b4e5acae10b599c68417bfde044895b2d33d (patch)
tree46243d4f6ef6488ae1274b83d6cb160afe316749 /drivers/gpu/nvgpu/gk20a/gr_gk20a.c
parent1760dc8e805ca667366a0ddeca8a72dd9859d11d (diff)
gpu: nvgpu: enhance class error debug info
Updated gk20a_gr_handle_class_error with sub channel info, mme related info. Also printing the correct method info from isr_data->offset by left shifting it by 2. Generated following hw definitions for gk20a/gm20b/gp10b/gp106 to dump relevant data in gk20a_gr_handle_class_error: gr_trapped_addr_mme_generated_v gr_trapped_addr_datahigh_v gr_trapped_addr_priv_v gr_trapped_data_lo_r gr_trapped_data_mme_r gr_trapped_data_mme_pc_v Bug 2003671 Change-Id: I02e15ef16d7498b6a7dc2af547a14e84d570e8a7 Signed-off-by: seshendra Gadagottu <sgadagottu@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1574061 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gr_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c23
1 files changed, 18 insertions, 5 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
index 241e6525..d6732453 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
@@ -5202,11 +5202,24 @@ static int gk20a_gr_handle_class_error(struct gk20a *g,
5202 gr_class_error_code_v(gk20a_readl(g, gr_class_error_r())); 5202 gr_class_error_code_v(gk20a_readl(g, gr_class_error_r()));
5203 gk20a_gr_set_error_notifier(g, isr_data, 5203 gk20a_gr_set_error_notifier(g, isr_data,
5204 NVGPU_CHANNEL_GR_ERROR_SW_NOTIFY); 5204 NVGPU_CHANNEL_GR_ERROR_SW_NOTIFY);
5205 nvgpu_err(g, 5205 nvgpu_err(g, "class error 0x%08x, offset 0x%08x,"
5206 "class error 0x%08x, offset 0x%08x," 5206 "sub channel 0x%08x mme generated %d,"
5207 " unhandled intr 0x%08x for channel %u", 5207 " mme pc 0x%08xdata high %d priv status %d"
5208 isr_data->class_num, isr_data->offset, 5208 " unhandled intr 0x%08x for channel %u",
5209 gr_class_error, isr_data->chid); 5209 isr_data->class_num, (isr_data->offset << 2),
5210 gr_trapped_addr_subch_v(isr_data->addr),
5211 gr_trapped_addr_mme_generated_v(isr_data->addr),
5212 gr_trapped_data_mme_pc_v(
5213 gk20a_readl(g, gr_trapped_data_mme_r())),
5214 gr_trapped_addr_datahigh_v(isr_data->addr),
5215 gr_trapped_addr_priv_v(isr_data->addr),
5216 gr_class_error, isr_data->chid);
5217
5218 nvgpu_err(g, "trapped data low 0x%08x",
5219 gk20a_readl(g, gr_trapped_data_lo_r()));
5220 if (gr_trapped_addr_datahigh_v(isr_data->addr))
5221 nvgpu_err(g, "trapped data high 0x%08x",
5222 gk20a_readl(g, gr_trapped_data_hi_r()));
5210 5223
5211 return -EINVAL; 5224 return -EINVAL;
5212} 5225}