summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDavid Nieto <dmartineznie@nvidia.com>2017-05-25 18:59:24 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-06-04 23:34:57 -0400
commita1220b49ae94a2781c5a0ad11f504520e2aa11ca (patch)
treecdd16609b287d5e176e0ee7cd8e8a9371490584c /drivers
parent651f970d1cfd82ef4112bef86357e3521b0d0588 (diff)
gpu: nvgpu : GPC MMU ECC support
Adding support for handling of GPC MMU errors JIRA: GPUT19X-112 Change-Id: Iadeef017587e5dce3698026eef4ad94676c3c02b Signed-off-by: David Nieto <dmartineznie@nvidia.com> Reviewed-on: http://git-master/r/1490771 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.h2
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c10
2 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index 899c1d6a..89b414be 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -313,6 +313,8 @@ struct gpu_ops {
313 bool *post_event); 313 bool *post_event);
314 int (*handle_gpc_gpccs_exception)(struct gk20a *g, u32 gpc, 314 int (*handle_gpc_gpccs_exception)(struct gk20a *g, u32 gpc,
315 u32 gpc_exception); 315 u32 gpc_exception);
316 int (*handle_gpc_gpcmmu_exception)(struct gk20a *g, u32 gpc,
317 u32 gpc_exception);
316 void (*enable_gpc_exceptions)(struct gk20a *g); 318 void (*enable_gpc_exceptions)(struct gk20a *g);
317 void (*enable_exceptions)(struct gk20a *g); 319 void (*enable_exceptions)(struct gk20a *g);
318 void (*create_gr_sysfs)(struct device *dev); 320 void (*create_gr_sysfs)(struct device *dev);
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
index 982cfac8..3b46b807 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
@@ -6378,6 +6378,16 @@ static int gk20a_gr_handle_gpc_exception(struct gk20a *g, bool *post_event,
6378 gpc_exception); 6378 gpc_exception);
6379 ret = ret ? ret : ret_ecc; 6379 ret = ret ? ret : ret_ecc;
6380 } 6380 }
6381
6382 /* Handle GPCMMU exceptions */
6383 if (g->ops.gr.handle_gpc_gpcmmu_exception) {
6384 int ret_mmu = 0;
6385
6386 ret_mmu = g->ops.gr.handle_gpc_gpcmmu_exception(g, gpc,
6387 gpc_exception);
6388 ret = ret ? ret : ret_mmu;
6389 }
6390
6381 } 6391 }
6382 6392
6383 return ret; 6393 return ret;