diff options
author | David Nieto <dmartineznie@nvidia.com> | 2017-05-18 19:50:57 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-05-24 07:55:59 -0400 |
commit | 05388ad24a61c43a110e3d235622c23a356b5df7 (patch) | |
tree | 98e4eacd09571d8575a49977e268c3410a0e6834 /drivers/gpu/nvgpu/gp10b/gr_gp10b.c | |
parent | 94226c9c1ed67be2dd146648b0460ef7346a2900 (diff) |
gpu: nvgpu: re-arrange parity counters
(1) Re-arrange the structure for parity counters reporting so multiple
units can be managed
JIRA: GPUT19X-84
Change-Id: If59a883dfe22d5a1d91a6d0ed2f5a6254434ffcb
Signed-off-by: David Nieto <dmartineznie@nvidia.com>
Reviewed-on: http://git-master/r/1485276
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gp10b/gr_gp10b.c')
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/gr_gp10b.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c index 1853aaec..2c85a667 100644 --- a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c | |||
@@ -169,7 +169,7 @@ static int gr_gp10b_handle_sm_exception(struct gk20a *g, u32 gpc, u32 tpc, | |||
169 | lrf_ecc_ded_status, | 169 | lrf_ecc_ded_status, |
170 | &lrf_single_count_delta, | 170 | &lrf_single_count_delta, |
171 | lrf_double_count_delta); | 171 | lrf_double_count_delta); |
172 | g->gr.t18x.ecc_stats.sm_lrf_single_err_count.counters[tpc] += | 172 | g->ecc.gr.t18x.sm_lrf_single_err_count.counters[tpc] += |
173 | lrf_single_count_delta; | 173 | lrf_single_count_delta; |
174 | } | 174 | } |
175 | if (lrf_ecc_ded_status) { | 175 | if (lrf_ecc_ded_status) { |
@@ -181,7 +181,7 @@ static int gr_gp10b_handle_sm_exception(struct gk20a *g, u32 gpc, u32 tpc, | |||
181 | lrf_ecc_ded_status, | 181 | lrf_ecc_ded_status, |
182 | &lrf_double_count_delta, | 182 | &lrf_double_count_delta, |
183 | lrf_single_count_delta); | 183 | lrf_single_count_delta); |
184 | g->gr.t18x.ecc_stats.sm_lrf_double_err_count.counters[tpc] += | 184 | g->ecc.gr.t18x.sm_lrf_double_err_count.counters[tpc] += |
185 | lrf_double_count_delta; | 185 | lrf_double_count_delta; |
186 | } | 186 | } |
187 | gk20a_writel(g, gr_pri_gpc0_tpc0_sm_lrf_ecc_status_r() + offset, | 187 | gk20a_writel(g, gr_pri_gpc0_tpc0_sm_lrf_ecc_status_r() + offset, |
@@ -206,9 +206,9 @@ static int gr_gp10b_handle_sm_exception(struct gk20a *g, u32 gpc, u32 tpc, | |||
206 | ecc_stats_reg_val = | 206 | ecc_stats_reg_val = |
207 | gk20a_readl(g, | 207 | gk20a_readl(g, |
208 | gr_pri_gpc0_tpc0_sm_shm_ecc_err_count_r() + offset); | 208 | gr_pri_gpc0_tpc0_sm_shm_ecc_err_count_r() + offset); |
209 | g->gr.t18x.ecc_stats.sm_shm_sec_count.counters[tpc] += | 209 | g->ecc.gr.t18x.sm_shm_sec_count.counters[tpc] += |
210 | gr_pri_gpc0_tpc0_sm_shm_ecc_err_count_single_corrected_v(ecc_stats_reg_val); | 210 | gr_pri_gpc0_tpc0_sm_shm_ecc_err_count_single_corrected_v(ecc_stats_reg_val); |
211 | g->gr.t18x.ecc_stats.sm_shm_sed_count.counters[tpc] += | 211 | g->ecc.gr.t18x.sm_shm_sed_count.counters[tpc] += |
212 | gr_pri_gpc0_tpc0_sm_shm_ecc_err_count_single_detected_v(ecc_stats_reg_val); | 212 | gr_pri_gpc0_tpc0_sm_shm_ecc_err_count_single_detected_v(ecc_stats_reg_val); |
213 | ecc_stats_reg_val &= ~(gr_pri_gpc0_tpc0_sm_shm_ecc_err_count_single_corrected_m() | | 213 | ecc_stats_reg_val &= ~(gr_pri_gpc0_tpc0_sm_shm_ecc_err_count_single_corrected_m() | |
214 | gr_pri_gpc0_tpc0_sm_shm_ecc_err_count_single_detected_m()); | 214 | gr_pri_gpc0_tpc0_sm_shm_ecc_err_count_single_detected_m()); |
@@ -228,7 +228,7 @@ static int gr_gp10b_handle_sm_exception(struct gk20a *g, u32 gpc, u32 tpc, | |||
228 | ecc_stats_reg_val = | 228 | ecc_stats_reg_val = |
229 | gk20a_readl(g, | 229 | gk20a_readl(g, |
230 | gr_pri_gpc0_tpc0_sm_shm_ecc_err_count_r() + offset); | 230 | gr_pri_gpc0_tpc0_sm_shm_ecc_err_count_r() + offset); |
231 | g->gr.t18x.ecc_stats.sm_shm_ded_count.counters[tpc] += | 231 | g->ecc.gr.t18x.sm_shm_ded_count.counters[tpc] += |
232 | gr_pri_gpc0_tpc0_sm_shm_ecc_err_count_double_detected_v(ecc_stats_reg_val); | 232 | gr_pri_gpc0_tpc0_sm_shm_ecc_err_count_double_detected_v(ecc_stats_reg_val); |
233 | ecc_stats_reg_val &= ~(gr_pri_gpc0_tpc0_sm_shm_ecc_err_count_double_detected_m()); | 233 | ecc_stats_reg_val &= ~(gr_pri_gpc0_tpc0_sm_shm_ecc_err_count_double_detected_m()); |
234 | gk20a_writel(g, | 234 | gk20a_writel(g, |
@@ -269,7 +269,7 @@ static int gr_gp10b_handle_tex_exception(struct gk20a *g, u32 gpc, u32 tpc, | |||
269 | 269 | ||
270 | ecc_stats_reg_val = gk20a_readl(g, | 270 | ecc_stats_reg_val = gk20a_readl(g, |
271 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_r() + offset); | 271 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_r() + offset); |
272 | g->gr.t18x.ecc_stats.tex_total_sec_pipe0_count.counters[tpc] += | 272 | g->ecc.gr.t18x.tex_total_sec_pipe0_count.counters[tpc] += |
273 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_sec_v(ecc_stats_reg_val); | 273 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_sec_v(ecc_stats_reg_val); |
274 | ecc_stats_reg_val &= ~gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_sec_m(); | 274 | ecc_stats_reg_val &= ~gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_sec_m(); |
275 | gk20a_writel(g, | 275 | gk20a_writel(g, |
@@ -278,7 +278,7 @@ static int gr_gp10b_handle_tex_exception(struct gk20a *g, u32 gpc, u32 tpc, | |||
278 | 278 | ||
279 | ecc_stats_reg_val = gk20a_readl(g, | 279 | ecc_stats_reg_val = gk20a_readl(g, |
280 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_r() + offset); | 280 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_r() + offset); |
281 | g->gr.t18x.ecc_stats.tex_unique_sec_pipe0_count.counters[tpc] += | 281 | g->ecc.gr.t18x.tex_unique_sec_pipe0_count.counters[tpc] += |
282 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_sec_v(ecc_stats_reg_val); | 282 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_sec_v(ecc_stats_reg_val); |
283 | ecc_stats_reg_val &= ~gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_sec_m(); | 283 | ecc_stats_reg_val &= ~gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_sec_m(); |
284 | gk20a_writel(g, | 284 | gk20a_writel(g, |
@@ -293,7 +293,7 @@ static int gr_gp10b_handle_tex_exception(struct gk20a *g, u32 gpc, u32 tpc, | |||
293 | 293 | ||
294 | ecc_stats_reg_val = gk20a_readl(g, | 294 | ecc_stats_reg_val = gk20a_readl(g, |
295 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_r() + offset); | 295 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_r() + offset); |
296 | g->gr.t18x.ecc_stats.tex_total_sec_pipe1_count.counters[tpc] += | 296 | g->ecc.gr.t18x.tex_total_sec_pipe1_count.counters[tpc] += |
297 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_sec_v(ecc_stats_reg_val); | 297 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_sec_v(ecc_stats_reg_val); |
298 | ecc_stats_reg_val &= ~gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_sec_m(); | 298 | ecc_stats_reg_val &= ~gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_sec_m(); |
299 | gk20a_writel(g, | 299 | gk20a_writel(g, |
@@ -302,7 +302,7 @@ static int gr_gp10b_handle_tex_exception(struct gk20a *g, u32 gpc, u32 tpc, | |||
302 | 302 | ||
303 | ecc_stats_reg_val = gk20a_readl(g, | 303 | ecc_stats_reg_val = gk20a_readl(g, |
304 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_r() + offset); | 304 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_r() + offset); |
305 | g->gr.t18x.ecc_stats.tex_unique_sec_pipe1_count.counters[tpc] += | 305 | g->ecc.gr.t18x.tex_unique_sec_pipe1_count.counters[tpc] += |
306 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_sec_v(ecc_stats_reg_val); | 306 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_sec_v(ecc_stats_reg_val); |
307 | ecc_stats_reg_val &= ~gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_sec_m(); | 307 | ecc_stats_reg_val &= ~gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_sec_m(); |
308 | gk20a_writel(g, | 308 | gk20a_writel(g, |
@@ -325,7 +325,7 @@ static int gr_gp10b_handle_tex_exception(struct gk20a *g, u32 gpc, u32 tpc, | |||
325 | 325 | ||
326 | ecc_stats_reg_val = gk20a_readl(g, | 326 | ecc_stats_reg_val = gk20a_readl(g, |
327 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_r() + offset); | 327 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_r() + offset); |
328 | g->gr.t18x.ecc_stats.tex_total_ded_pipe0_count.counters[tpc] += | 328 | g->ecc.gr.t18x.tex_total_ded_pipe0_count.counters[tpc] += |
329 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_ded_v(ecc_stats_reg_val); | 329 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_ded_v(ecc_stats_reg_val); |
330 | ecc_stats_reg_val &= ~gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_ded_m(); | 330 | ecc_stats_reg_val &= ~gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_ded_m(); |
331 | gk20a_writel(g, | 331 | gk20a_writel(g, |
@@ -334,7 +334,7 @@ static int gr_gp10b_handle_tex_exception(struct gk20a *g, u32 gpc, u32 tpc, | |||
334 | 334 | ||
335 | ecc_stats_reg_val = gk20a_readl(g, | 335 | ecc_stats_reg_val = gk20a_readl(g, |
336 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_r() + offset); | 336 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_r() + offset); |
337 | g->gr.t18x.ecc_stats.tex_unique_ded_pipe0_count.counters[tpc] += | 337 | g->ecc.gr.t18x.tex_unique_ded_pipe0_count.counters[tpc] += |
338 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_ded_v(ecc_stats_reg_val); | 338 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_ded_v(ecc_stats_reg_val); |
339 | ecc_stats_reg_val &= ~gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_ded_m(); | 339 | ecc_stats_reg_val &= ~gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_ded_m(); |
340 | gk20a_writel(g, | 340 | gk20a_writel(g, |
@@ -349,7 +349,7 @@ static int gr_gp10b_handle_tex_exception(struct gk20a *g, u32 gpc, u32 tpc, | |||
349 | 349 | ||
350 | ecc_stats_reg_val = gk20a_readl(g, | 350 | ecc_stats_reg_val = gk20a_readl(g, |
351 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_r() + offset); | 351 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_r() + offset); |
352 | g->gr.t18x.ecc_stats.tex_total_ded_pipe1_count.counters[tpc] += | 352 | g->ecc.gr.t18x.tex_total_ded_pipe1_count.counters[tpc] += |
353 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_ded_v(ecc_stats_reg_val); | 353 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_ded_v(ecc_stats_reg_val); |
354 | ecc_stats_reg_val &= ~gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_ded_m(); | 354 | ecc_stats_reg_val &= ~gr_pri_gpc0_tpc0_tex_m_ecc_cnt_total_ded_m(); |
355 | gk20a_writel(g, | 355 | gk20a_writel(g, |
@@ -358,7 +358,7 @@ static int gr_gp10b_handle_tex_exception(struct gk20a *g, u32 gpc, u32 tpc, | |||
358 | 358 | ||
359 | ecc_stats_reg_val = gk20a_readl(g, | 359 | ecc_stats_reg_val = gk20a_readl(g, |
360 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_r() + offset); | 360 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_r() + offset); |
361 | g->gr.t18x.ecc_stats.tex_unique_ded_pipe1_count.counters[tpc] += | 361 | g->ecc.gr.t18x.tex_unique_ded_pipe1_count.counters[tpc] += |
362 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_ded_v(ecc_stats_reg_val); | 362 | gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_ded_v(ecc_stats_reg_val); |
363 | ecc_stats_reg_val &= ~gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_ded_m(); | 363 | ecc_stats_reg_val &= ~gr_pri_gpc0_tpc0_tex_m_ecc_cnt_unique_ded_m(); |
364 | gk20a_writel(g, | 364 | gk20a_writel(g, |