summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gp10b/gr_gp10b.c
diff options
context:
space:
mode:
authorDavid Nieto <dmartineznie@nvidia.com>2017-05-18 19:50:57 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-05-24 07:55:59 -0400
commit05388ad24a61c43a110e3d235622c23a356b5df7 (patch)
tree98e4eacd09571d8575a49977e268c3410a0e6834 /drivers/gpu/nvgpu/gp10b/gr_gp10b.c
parent94226c9c1ed67be2dd146648b0460ef7346a2900 (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.c26
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,