diff options
Diffstat (limited to 'drivers/gpu/nvgpu/common')
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/platform_gv11b_tegra.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/platform_gv11b_tegra.c b/drivers/gpu/nvgpu/common/linux/platform_gv11b_tegra.c index 3c6eac77..a2a60aaa 100644 --- a/drivers/gpu/nvgpu/common/linux/platform_gv11b_tegra.c +++ b/drivers/gpu/nvgpu/common/linux/platform_gv11b_tegra.c | |||
@@ -243,6 +243,9 @@ static struct device_attribute *dev_attr_mmu_hubtlb_ecc_uncorrected_err_count_ar | |||
243 | static struct device_attribute *dev_attr_mmu_fillunit_ecc_corrected_err_count_array; | 243 | static struct device_attribute *dev_attr_mmu_fillunit_ecc_corrected_err_count_array; |
244 | static struct device_attribute *dev_attr_mmu_fillunit_ecc_uncorrected_err_count_array; | 244 | static struct device_attribute *dev_attr_mmu_fillunit_ecc_uncorrected_err_count_array; |
245 | 245 | ||
246 | static struct device_attribute *dev_attr_pmu_ecc_corrected_err_count_array; | ||
247 | static struct device_attribute *dev_attr_pmu_ecc_uncorrected_err_count_array; | ||
248 | |||
246 | void gr_gv11b_create_sysfs(struct gk20a *g) | 249 | void gr_gv11b_create_sysfs(struct gk20a *g) |
247 | { | 250 | { |
248 | struct device *dev = dev_from_gk20a(g); | 251 | struct device *dev = dev_from_gk20a(g); |
@@ -414,6 +417,21 @@ void gr_gv11b_create_sysfs(struct gk20a *g) | |||
414 | &g->ecc.eng.t19x.mmu_fillunit_corrected_err_count, | 417 | &g->ecc.eng.t19x.mmu_fillunit_corrected_err_count, |
415 | &dev_attr_mmu_fillunit_ecc_corrected_err_count_array); | 418 | &dev_attr_mmu_fillunit_ecc_corrected_err_count_array); |
416 | 419 | ||
420 | error |= gp10b_ecc_stat_create(dev, | ||
421 | 1, | ||
422 | "eng", | ||
423 | "pmu_ecc_uncorrected_err_count", | ||
424 | &g->ecc.eng.t19x.pmu_uncorrected_err_count, | ||
425 | &dev_attr_pmu_ecc_uncorrected_err_count_array); | ||
426 | |||
427 | error |= gp10b_ecc_stat_create(dev, | ||
428 | 1, | ||
429 | "eng", | ||
430 | "pmu_ecc_corrected_err_count", | ||
431 | &g->ecc.eng.t19x.pmu_corrected_err_count, | ||
432 | &dev_attr_pmu_ecc_corrected_err_count_array); | ||
433 | |||
434 | |||
417 | if (error) | 435 | if (error) |
418 | dev_err(dev, "Failed to create gv11b sysfs attributes!\n"); | 436 | dev_err(dev, "Failed to create gv11b sysfs attributes!\n"); |
419 | } | 437 | } |
@@ -541,4 +559,14 @@ static void gr_gv11b_remove_sysfs(struct device *dev) | |||
541 | 1, | 559 | 1, |
542 | &g->ecc.eng.t19x.mmu_fillunit_corrected_err_count, | 560 | &g->ecc.eng.t19x.mmu_fillunit_corrected_err_count, |
543 | dev_attr_mmu_fillunit_ecc_corrected_err_count_array); | 561 | dev_attr_mmu_fillunit_ecc_corrected_err_count_array); |
562 | |||
563 | gp10b_ecc_stat_remove(dev, | ||
564 | 1, | ||
565 | &g->ecc.eng.t19x.pmu_uncorrected_err_count, | ||
566 | dev_attr_pmu_ecc_uncorrected_err_count_array); | ||
567 | |||
568 | gp10b_ecc_stat_remove(dev, | ||
569 | 1, | ||
570 | &g->ecc.eng.t19x.pmu_corrected_err_count, | ||
571 | dev_attr_pmu_ecc_corrected_err_count_array); | ||
544 | } | 572 | } |