diff options
author | Seema Khowala <seemaj@nvidia.com> | 2018-03-27 14:52:27 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-03-29 16:53:59 -0400 |
commit | aa7ee8dac0cb29ee3244c7eef77eac8e7fc34dba (patch) | |
tree | 01dcb1f09ba1bd3f52a95b6a28a4a37823a334fc /drivers/gpu/nvgpu/gp10b/priv_ring_gp10b.c | |
parent | f81d83690f9d08be0daf8a488331fb04d9d23c46 (diff) |
gpu: nvgpu: enhance pbus error reporting
-Dump timeout save0 and save1 even if they could
be unreliable when fecs_tgt in set in save0 . This
is good to have for debug purposes.
-Add priv_ring hal for decode_error_code
-Decode fecs error code for supported error types
Bug 1998067
Change-Id: I60cb6902d099df4a7df45fa624e44d9e0d46360f
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1683014
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gp10b/priv_ring_gp10b.c')
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/priv_ring_gp10b.c | 9 |
1 files changed, 6 insertions, 3 deletions
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) |