summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
diff options
context:
space:
mode:
authorDavid Nieto <dmartineznie@nvidia.com>2017-05-22 19:38:49 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-06-04 23:34:57 -0400
commit6bc36bded05ee497a474e5a718c49dc33eb235f1 (patch)
treecaf557eaff74b2fa01609dfa3b933713647838d6 /drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
parent81172b5df4c7dc46bf46419074b30e0a73f5ddfb (diff)
gpu: nvgpu: L2 cache tag ECC support
Adding support for L2 cache tag ECC error handling JIRA: GPUT19X-112 Change-Id: I9a8ebefe97814b341f57a024dfb126013adaac1c Signed-off-by: David Nieto <dmartineznie@nvidia.com> Reviewed-on: http://git-master/r/1489029 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.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c b/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
index 8733cae9..432af7c1 100644
--- a/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
+++ b/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
@@ -177,6 +177,9 @@ static struct device_attribute *dev_attr_fecs_ecc_uncorrected_err_count_array;
177static struct device_attribute *dev_attr_gpccs_ecc_corrected_err_count_array; 177static struct device_attribute *dev_attr_gpccs_ecc_corrected_err_count_array;
178static struct device_attribute *dev_attr_gpccs_ecc_uncorrected_err_count_array; 178static struct device_attribute *dev_attr_gpccs_ecc_uncorrected_err_count_array;
179 179
180static struct device_attribute *dev_attr_l2_cache_ecc_corrected_err_count_array;
181static struct device_attribute *dev_attr_l2_cache_ecc_uncorrected_err_count_array;
182
180void gr_gv11b_create_sysfs(struct device *dev) 183void gr_gv11b_create_sysfs(struct device *dev)
181{ 184{
182 struct gk20a *g = get_gk20a(dev); 185 struct gk20a *g = get_gk20a(dev);
@@ -251,6 +254,20 @@ void gr_gv11b_create_sysfs(struct device *dev)
251 dev_attr_gcc_l15_ecc_uncorrected_err_count_array); 254 dev_attr_gcc_l15_ecc_uncorrected_err_count_array);
252 255
253 error |= gp10b_ecc_stat_create(dev, 256 error |= gp10b_ecc_stat_create(dev,
257 g->ltc_count,
258 "ltc",
259 "l2_cache_uncorrected_err_count",
260 &g->ecc.ltc.t19x.l2_cache_uncorrected_err_count,
261 dev_attr_l2_cache_ecc_uncorrected_err_count_array);
262
263 error |= gp10b_ecc_stat_create(dev,
264 g->ltc_count,
265 "ltc",
266 "l2_cache_corrected_err_count",
267 &g->ecc.ltc.t19x.l2_cache_corrected_err_count,
268 dev_attr_l2_cache_ecc_corrected_err_count_array);
269
270 error |= gp10b_ecc_stat_create(dev,
254 1, 271 1,
255 "gpc", 272 "gpc",
256 "fecs_ecc_uncorrected_err_count", 273 "fecs_ecc_uncorrected_err_count",
@@ -337,6 +354,16 @@ static void gr_gv11b_remove_sysfs(struct device *dev)
337 dev_attr_gcc_l15_ecc_uncorrected_err_count_array); 354 dev_attr_gcc_l15_ecc_uncorrected_err_count_array);
338 355
339 gp10b_ecc_stat_remove(dev, 356 gp10b_ecc_stat_remove(dev,
357 g->ltc_count,
358 &g->ecc.ltc.t19x.l2_cache_uncorrected_err_count,
359 dev_attr_l2_cache_ecc_uncorrected_err_count_array);
360
361 gp10b_ecc_stat_remove(dev,
362 g->ltc_count,
363 &g->ecc.ltc.t19x.l2_cache_corrected_err_count,
364 dev_attr_l2_cache_ecc_corrected_err_count_array);
365
366 gp10b_ecc_stat_remove(dev,
340 1, 367 1,
341 &g->ecc.gr.t19x.fecs_uncorrected_err_count, 368 &g->ecc.gr.t19x.fecs_uncorrected_err_count,
342 dev_attr_fecs_ecc_uncorrected_err_count_array); 369 dev_attr_fecs_ecc_uncorrected_err_count_array);