diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c')
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c | 25 |
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 | |||
171 | static struct device_attribute *dev_attr_sm_icache_ecc_uncorrected_err_count_array; | 171 | static struct device_attribute *dev_attr_sm_icache_ecc_uncorrected_err_count_array; |
172 | static struct device_attribute *dev_attr_gcc_l15_ecc_corrected_err_count_array; | 172 | static struct device_attribute *dev_attr_gcc_l15_ecc_corrected_err_count_array; |
173 | static struct device_attribute *dev_attr_gcc_l15_ecc_uncorrected_err_count_array; | 173 | static struct device_attribute *dev_attr_gcc_l15_ecc_uncorrected_err_count_array; |
174 | static struct device_attribute *dev_attr_mmu_l1tlb_ecc_corrected_err_count_array; | ||
175 | static struct device_attribute *dev_attr_mmu_l1tlb_ecc_uncorrected_err_count_array; | ||
174 | 176 | ||
175 | static struct device_attribute *dev_attr_fecs_ecc_corrected_err_count_array; | 177 | static struct device_attribute *dev_attr_fecs_ecc_corrected_err_count_array; |
176 | static struct device_attribute *dev_attr_fecs_ecc_uncorrected_err_count_array; | 178 | static 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 | } |