summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c')
-rw-r--r--drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c80
1 files changed, 80 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c b/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
index c69e1478..95bbfbd3 100644
--- a/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
+++ b/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
@@ -182,6 +182,13 @@ static struct device_attribute *dev_attr_gpccs_ecc_uncorrected_err_count_array;
182static struct device_attribute *dev_attr_l2_cache_ecc_corrected_err_count_array; 182static struct device_attribute *dev_attr_l2_cache_ecc_corrected_err_count_array;
183static struct device_attribute *dev_attr_l2_cache_ecc_uncorrected_err_count_array; 183static struct device_attribute *dev_attr_l2_cache_ecc_uncorrected_err_count_array;
184 184
185static struct device_attribute *dev_attr_mmu_l2tlb_ecc_corrected_err_count_array;
186static struct device_attribute *dev_attr_mmu_l2tlb_ecc_uncorrected_err_count_array;
187static struct device_attribute *dev_attr_mmu_hubtlb_ecc_corrected_err_count_array;
188static struct device_attribute *dev_attr_mmu_hubtlb_ecc_uncorrected_err_count_array;
189static struct device_attribute *dev_attr_mmu_fillunit_ecc_corrected_err_count_array;
190static struct device_attribute *dev_attr_mmu_fillunit_ecc_uncorrected_err_count_array;
191
185void gr_gv11b_create_sysfs(struct device *dev) 192void gr_gv11b_create_sysfs(struct device *dev)
186{ 193{
187 struct gk20a *g = get_gk20a(dev); 194 struct gk20a *g = get_gk20a(dev);
@@ -310,6 +317,49 @@ void gr_gv11b_create_sysfs(struct device *dev)
310 "mmu_l1tlb_ecc_corrected_err_count", 317 "mmu_l1tlb_ecc_corrected_err_count",
311 &g->ecc.gr.t19x.mmu_l1tlb_corrected_err_count, 318 &g->ecc.gr.t19x.mmu_l1tlb_corrected_err_count,
312 dev_attr_mmu_l1tlb_ecc_corrected_err_count_array); 319 dev_attr_mmu_l1tlb_ecc_corrected_err_count_array);
320
321 error |= gp10b_ecc_stat_create(dev,
322 1,
323 "eng",
324 "mmu_l2tlb_ecc_uncorrected_err_count",
325 &g->ecc.eng.t19x.mmu_l2tlb_uncorrected_err_count,
326 dev_attr_mmu_l2tlb_ecc_uncorrected_err_count_array);
327
328 error |= gp10b_ecc_stat_create(dev,
329 1,
330 "eng",
331 "mmu_l2tlb_ecc_corrected_err_count",
332 &g->ecc.eng.t19x.mmu_l2tlb_corrected_err_count,
333 dev_attr_mmu_l2tlb_ecc_corrected_err_count_array);
334
335 error |= gp10b_ecc_stat_create(dev,
336 1,
337 "eng",
338 "mmu_hubtlb_ecc_uncorrected_err_count",
339 &g->ecc.eng.t19x.mmu_hubtlb_uncorrected_err_count,
340 dev_attr_mmu_hubtlb_ecc_uncorrected_err_count_array);
341
342 error |= gp10b_ecc_stat_create(dev,
343 1,
344 "eng",
345 "mmu_hubtlb_ecc_corrected_err_count",
346 &g->ecc.eng.t19x.mmu_hubtlb_corrected_err_count,
347 dev_attr_mmu_hubtlb_ecc_corrected_err_count_array);
348
349 error |= gp10b_ecc_stat_create(dev,
350 1,
351 "eng",
352 "mmu_fillunit_ecc_uncorrected_err_count",
353 &g->ecc.eng.t19x.mmu_fillunit_uncorrected_err_count,
354 dev_attr_mmu_fillunit_ecc_uncorrected_err_count_array);
355
356 error |= gp10b_ecc_stat_create(dev,
357 1,
358 "eng",
359 "mmu_fillunit_ecc_corrected_err_count",
360 &g->ecc.eng.t19x.mmu_fillunit_corrected_err_count,
361 dev_attr_mmu_fillunit_ecc_corrected_err_count_array);
362
313 if (error) 363 if (error)
314 dev_err(dev, "Failed to create gv11b sysfs attributes!\n"); 364 dev_err(dev, "Failed to create gv11b sysfs attributes!\n");
315} 365}
@@ -407,4 +457,34 @@ static void gr_gv11b_remove_sysfs(struct device *dev)
407 g->gr.gpc_count, 457 g->gr.gpc_count,
408 &g->ecc.gr.t19x.mmu_l1tlb_corrected_err_count, 458 &g->ecc.gr.t19x.mmu_l1tlb_corrected_err_count,
409 dev_attr_mmu_l1tlb_ecc_corrected_err_count_array); 459 dev_attr_mmu_l1tlb_ecc_corrected_err_count_array);
460
461 gp10b_ecc_stat_remove(dev,
462 1,
463 &g->ecc.eng.t19x.mmu_l2tlb_uncorrected_err_count,
464 dev_attr_mmu_l2tlb_ecc_uncorrected_err_count_array);
465
466 gp10b_ecc_stat_remove(dev,
467 1,
468 &g->ecc.eng.t19x.mmu_l2tlb_corrected_err_count,
469 dev_attr_mmu_l2tlb_ecc_corrected_err_count_array);
470
471 gp10b_ecc_stat_remove(dev,
472 1,
473 &g->ecc.eng.t19x.mmu_hubtlb_uncorrected_err_count,
474 dev_attr_mmu_hubtlb_ecc_uncorrected_err_count_array);
475
476 gp10b_ecc_stat_remove(dev,
477 1,
478 &g->ecc.eng.t19x.mmu_hubtlb_corrected_err_count,
479 dev_attr_mmu_hubtlb_ecc_corrected_err_count_array);
480
481 gp10b_ecc_stat_remove(dev,
482 1,
483 &g->ecc.eng.t19x.mmu_fillunit_uncorrected_err_count,
484 dev_attr_mmu_fillunit_ecc_uncorrected_err_count_array);
485
486 gp10b_ecc_stat_remove(dev,
487 1,
488 &g->ecc.eng.t19x.mmu_fillunit_corrected_err_count,
489 dev_attr_mmu_fillunit_ecc_corrected_err_count_array);
410} 490}