summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
diff options
context:
space:
mode:
authorLakshmanan M <lm@nvidia.com>2017-05-15 06:02:21 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-05-18 12:04:39 -0400
commitd503a234440b0b5912f64314de68689b3211bbcd (patch)
treeb49c43a03d54ace5673945fe9e3664e84e62247b /drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
parentffc37e50fa8e869e9a160b35f3cf414040e8a360 (diff)
gpu: nvgpu: gv11b: Add LRF + CBU parity support
This CL covers the following parity support (uncorrected error), 1) SM's LRF 2) SM's CBU Volta Resiliency Id - Volta-637 JIRA GPUT19X-85 JIRA GPUT19X-110 Bug 1775457 Change-Id: I3befb1fe22719d06aa819ef27654aaf97f911a9b Signed-off-by: Lakshmanan M <lm@nvidia.com> Reviewed-on: http://git-master/r/1481791 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@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 8ca9dd30..d235b261 100644
--- a/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
+++ b/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
@@ -125,6 +125,8 @@ struct gk20a_platform t19x_gpu_tegra_platform = {
125 125
126static struct device_attribute *dev_attr_sm_l1_tag_ecc_corrected_err_count_array; 126static struct device_attribute *dev_attr_sm_l1_tag_ecc_corrected_err_count_array;
127static struct device_attribute *dev_attr_sm_l1_tag_ecc_uncorrected_err_count_array; 127static struct device_attribute *dev_attr_sm_l1_tag_ecc_uncorrected_err_count_array;
128static struct device_attribute *dev_attr_sm_cbu_ecc_corrected_err_count_array;
129static struct device_attribute *dev_attr_sm_cbu_ecc_uncorrected_err_count_array;
128 130
129void gr_gv11b_create_sysfs(struct device *dev) 131void gr_gv11b_create_sysfs(struct device *dev)
130{ 132{
@@ -151,6 +153,18 @@ void gr_gv11b_create_sysfs(struct device *dev)
151 &g->gr.t19x.ecc_stats.sm_l1_tag_uncorrected_err_count, 153 &g->gr.t19x.ecc_stats.sm_l1_tag_uncorrected_err_count,
152 dev_attr_sm_l1_tag_ecc_uncorrected_err_count_array); 154 dev_attr_sm_l1_tag_ecc_uncorrected_err_count_array);
153 155
156 error |= gr_gp10b_ecc_stat_create(dev,
157 0,
158 "sm_cbu_ecc_corrected_err_count",
159 &g->gr.t19x.ecc_stats.sm_cbu_corrected_err_count,
160 dev_attr_sm_cbu_ecc_corrected_err_count_array);
161
162 error |= gr_gp10b_ecc_stat_create(dev,
163 0,
164 "sm_cbu_ecc_uncorrected_err_count",
165 &g->gr.t19x.ecc_stats.sm_cbu_uncorrected_err_count,
166 dev_attr_sm_cbu_ecc_uncorrected_err_count_array);
167
154 if (error) 168 if (error)
155 dev_err(dev, "Failed to create gv11b sysfs attributes!\n"); 169 dev_err(dev, "Failed to create gv11b sysfs attributes!\n");
156} 170}
@@ -168,4 +182,15 @@ static void gr_gv11b_remove_sysfs(struct device *dev)
168 0, 182 0,
169 &g->gr.t19x.ecc_stats.sm_l1_tag_uncorrected_err_count, 183 &g->gr.t19x.ecc_stats.sm_l1_tag_uncorrected_err_count,
170 dev_attr_sm_l1_tag_ecc_uncorrected_err_count_array); 184 dev_attr_sm_l1_tag_ecc_uncorrected_err_count_array);
185
186 gr_gp10b_ecc_stat_remove(dev,
187 0,
188 &g->gr.t19x.ecc_stats.sm_cbu_corrected_err_count,
189 dev_attr_sm_cbu_ecc_corrected_err_count_array);
190
191 gr_gp10b_ecc_stat_remove(dev,
192 0,
193 &g->gr.t19x.ecc_stats.sm_cbu_uncorrected_err_count,
194 dev_attr_sm_cbu_ecc_uncorrected_err_count_array);
195
171} 196}