diff options
author | David Nieto <dmartineznie@nvidia.com> | 2017-05-25 18:59:24 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-06-04 23:34:57 -0400 |
commit | a1220b49ae94a2781c5a0ad11f504520e2aa11ca (patch) | |
tree | cdd16609b287d5e176e0ee7cd8e8a9371490584c /drivers/gpu | |
parent | 651f970d1cfd82ef4112bef86357e3521b0d0588 (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/gpu')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 2 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 10 |
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; |