diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gp10b')
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/hal_gp10b.c | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/priv_ring_gp10b.c | 9 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/priv_ring_gp10b.h | 4 |
3 files changed, 10 insertions, 4 deletions
diff --git a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c index dd413c5a..a6a66f93 100644 --- a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c | |||
@@ -646,6 +646,7 @@ static const struct gpu_ops gp10b_ops = { | |||
646 | }, | 646 | }, |
647 | .priv_ring = { | 647 | .priv_ring = { |
648 | .isr = gp10b_priv_ring_isr, | 648 | .isr = gp10b_priv_ring_isr, |
649 | .decode_error_code = gp10b_priv_ring_decode_error_code, | ||
649 | }, | 650 | }, |
650 | .fuse = { | 651 | .fuse = { |
651 | .check_priv_security = gp10b_fuse_check_priv_security, | 652 | .check_priv_security = gp10b_fuse_check_priv_security, |
diff --git a/drivers/gpu/nvgpu/gp10b/priv_ring_gp10b.c b/drivers/gpu/nvgpu/gp10b/priv_ring_gp10b.c index 0fac76f2..12cd2a84 100644 --- a/drivers/gpu/nvgpu/gp10b/priv_ring_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/priv_ring_gp10b.c | |||
@@ -64,7 +64,7 @@ static const char *const error_type_badf5xyy[] = { | |||
64 | "pri route error" | 64 | "pri route error" |
65 | }; | 65 | }; |
66 | 66 | ||
67 | static void gp10b_priv_ring_decode_error_code(struct gk20a *g, | 67 | void gp10b_priv_ring_decode_error_code(struct gk20a *g, |
68 | u32 error_code) | 68 | u32 error_code) |
69 | { | 69 | { |
70 | u32 error_type, error_type_index; | 70 | u32 error_type, error_type_index; |
@@ -141,7 +141,8 @@ void gp10b_priv_ring_isr(struct gk20a *g) | |||
141 | pri_ringstation_sys_priv_error_info_subid_v(error_info), | 141 | pri_ringstation_sys_priv_error_info_subid_v(error_info), |
142 | pri_ringstation_sys_priv_error_info_priv_level_v(error_info), | 142 | pri_ringstation_sys_priv_error_info_priv_level_v(error_info), |
143 | error_code); | 143 | error_code); |
144 | gp10b_priv_ring_decode_error_code(g, error_code); | 144 | if (g->ops.priv_ring.decode_error_code) |
145 | g->ops.priv_ring.decode_error_code(g, error_code); | ||
145 | } | 146 | } |
146 | 147 | ||
147 | if (status1) { | 148 | if (status1) { |
@@ -166,7 +167,9 @@ void gp10b_priv_ring_isr(struct gk20a *g) | |||
166 | pri_ringstation_gpc_gpc0_priv_error_info_priv_level_v(error_info), | 167 | pri_ringstation_gpc_gpc0_priv_error_info_priv_level_v(error_info), |
167 | error_code); | 168 | error_code); |
168 | 169 | ||
169 | gp10b_priv_ring_decode_error_code(g, error_code); | 170 | if (g->ops.priv_ring.decode_error_code) |
171 | g->ops.priv_ring.decode_error_code(g, | ||
172 | error_code); | ||
170 | 173 | ||
171 | status1 = status1 & (~(BIT(gpc))); | 174 | status1 = status1 & (~(BIT(gpc))); |
172 | if (!status1) | 175 | if (!status1) |
diff --git a/drivers/gpu/nvgpu/gp10b/priv_ring_gp10b.h b/drivers/gpu/nvgpu/gp10b/priv_ring_gp10b.h index 5b004a58..dd418e5b 100644 --- a/drivers/gpu/nvgpu/gp10b/priv_ring_gp10b.h +++ b/drivers/gpu/nvgpu/gp10b/priv_ring_gp10b.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * GP10B PRIV ringmaster | 2 | * GP10B PRIV ringmaster |
3 | * | 3 | * |
4 | * Copyright (c) 2011-2017, NVIDIA CORPORATION. All rights reserved. | 4 | * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. |
5 | * | 5 | * |
6 | * Permission is hereby granted, free of charge, to any person obtaining a | 6 | * Permission is hereby granted, free of charge, to any person obtaining a |
7 | * copy of this software and associated documentation files (the "Software"), | 7 | * copy of this software and associated documentation files (the "Software"), |
@@ -27,5 +27,7 @@ | |||
27 | struct gk20a; | 27 | struct gk20a; |
28 | 28 | ||
29 | void gp10b_priv_ring_isr(struct gk20a *g); | 29 | void gp10b_priv_ring_isr(struct gk20a *g); |
30 | void gp10b_priv_ring_decode_error_code(struct gk20a *g, | ||
31 | u32 error_code); | ||
30 | 32 | ||
31 | #endif /*__PRIV_RING_GP10B_H__*/ | 33 | #endif /*__PRIV_RING_GP10B_H__*/ |