summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
diff options
context:
space:
mode:
authorDavid Nieto <dmartineznie@nvidia.com>2017-05-26 11:31:46 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-06-04 23:34:57 -0400
commit345eaef6a76771da9c3e8a5e375fc9d659fb1b2b (patch)
tree21d2d25eae69ced2a39d62a56a4ee6f42e5c0655 /drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
parent6bc36bded05ee497a474e5a718c49dc33eb235f1 (diff)
gpu: nvgpu: GPC MMU ECC support
Adding support for GPC MMU ECC error handling JIRA: GPUT19X-112 Change-Id: I62083bf2f144ff628ecd8c0aefc8d227a233ff36 Signed-off-by: David Nieto <dmartineznie@nvidia.com> Reviewed-on: http://git-master/r/1490772 Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c')
-rw-r--r--drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c b/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
index 432af7c1..c69e1478 100644
--- a/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
+++ b/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
@@ -171,6 +171,8 @@ static struct device_attribute *dev_attr_sm_icache_ecc_corrected_err_count_array
171static struct device_attribute *dev_attr_sm_icache_ecc_uncorrected_err_count_array; 171static struct device_attribute *dev_attr_sm_icache_ecc_uncorrected_err_count_array;
172static struct device_attribute *dev_attr_gcc_l15_ecc_corrected_err_count_array; 172static struct device_attribute *dev_attr_gcc_l15_ecc_corrected_err_count_array;
173static struct device_attribute *dev_attr_gcc_l15_ecc_uncorrected_err_count_array; 173static struct device_attribute *dev_attr_gcc_l15_ecc_uncorrected_err_count_array;
174static struct device_attribute *dev_attr_mmu_l1tlb_ecc_corrected_err_count_array;
175static struct device_attribute *dev_attr_mmu_l1tlb_ecc_uncorrected_err_count_array;
174 176
175static struct device_attribute *dev_attr_fecs_ecc_corrected_err_count_array; 177static struct device_attribute *dev_attr_fecs_ecc_corrected_err_count_array;
176static struct device_attribute *dev_attr_fecs_ecc_uncorrected_err_count_array; 178static struct device_attribute *dev_attr_fecs_ecc_uncorrected_err_count_array;
@@ -295,6 +297,19 @@ void gr_gv11b_create_sysfs(struct device *dev)
295 &g->ecc.gr.t19x.gpccs_corrected_err_count, 297 &g->ecc.gr.t19x.gpccs_corrected_err_count,
296 dev_attr_gpccs_ecc_corrected_err_count_array); 298 dev_attr_gpccs_ecc_corrected_err_count_array);
297 299
300 error |= gp10b_ecc_stat_create(dev,
301 g->gr.gpc_count,
302 "gpc",
303 "mmu_l1tlb_ecc_uncorrected_err_count",
304 &g->ecc.gr.t19x.mmu_l1tlb_uncorrected_err_count,
305 dev_attr_mmu_l1tlb_ecc_uncorrected_err_count_array);
306
307 error |= gp10b_ecc_stat_create(dev,
308 g->gr.gpc_count,
309 "gpc",
310 "mmu_l1tlb_ecc_corrected_err_count",
311 &g->ecc.gr.t19x.mmu_l1tlb_corrected_err_count,
312 dev_attr_mmu_l1tlb_ecc_corrected_err_count_array);
298 if (error) 313 if (error)
299 dev_err(dev, "Failed to create gv11b sysfs attributes!\n"); 314 dev_err(dev, "Failed to create gv11b sysfs attributes!\n");
300} 315}
@@ -382,4 +397,14 @@ static void gr_gv11b_remove_sysfs(struct device *dev)
382 g->gr.gpc_count, 397 g->gr.gpc_count,
383 &g->ecc.gr.t19x.gpccs_corrected_err_count, 398 &g->ecc.gr.t19x.gpccs_corrected_err_count,
384 dev_attr_gpccs_ecc_corrected_err_count_array); 399 dev_attr_gpccs_ecc_corrected_err_count_array);
400
401 gp10b_ecc_stat_remove(dev,
402 g->gr.gpc_count,
403 &g->ecc.gr.t19x.mmu_l1tlb_uncorrected_err_count,
404 dev_attr_mmu_l1tlb_ecc_uncorrected_err_count_array);
405
406 gp10b_ecc_stat_remove(dev,
407 g->gr.gpc_count,
408 &g->ecc.gr.t19x.mmu_l1tlb_corrected_err_count,
409 dev_attr_mmu_l1tlb_ecc_corrected_err_count_array);
385} 410}