summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
diff options
context:
space:
mode:
authorThomas Fleury <tfleury@nvidia.com>2016-08-17 20:26:30 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2016-08-29 19:14:29 -0400
commit5286fd525731d19dfa07d5e6e49e8d0eef233531 (patch)
tree6c64a7976d8e8795fb6bfda75cdfc7b058a4ecf8 /drivers/gpu/nvgpu/gk20a/channel_gk20a.h
parent06780e0681b34ec570346fe5d4bdaf7a23f08a36 (diff)
gpu: nvgpu: fix ctxsw timeout handling for TSGs
While collecting failing engine data, id type (is_tsg) was not set for ctxsw and save engine states. This could result in some ctxsw timeout interrupts to be ignored (id reported with wrong is_tsg). For TSGs, check if we made some progress on any of the channels before kicking fifo recovery. Bug 200228310 Jira EVLR-597 Change-Id: I231549ae68317919532de0f87effb78ee9c119c6 Signed-off-by: Thomas Fleury <tfleury@nvidia.com> Reviewed-on: http://git-master/r/1204035 (cherry picked from commit 7221d256fd7e9b418f7789b3d81eede8faa16f0b) Reviewed-on: http://git-master/r/1204037 Reviewed-by: Richard Zhao <rizhao@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.h')
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
index 971175f2..6469603b 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
@@ -218,7 +218,7 @@ int gk20a_init_channel_support(struct gk20a *, u32 chid);
218void gk20a_channel_close(struct channel_gk20a *ch); 218void gk20a_channel_close(struct channel_gk20a *ch);
219 219
220bool gk20a_channel_update_and_check_timeout(struct channel_gk20a *ch, 220bool gk20a_channel_update_and_check_timeout(struct channel_gk20a *ch,
221 u32 timeout_delta_ms); 221 u32 timeout_delta_ms, bool *progress);
222void gk20a_disable_channel(struct channel_gk20a *ch); 222void gk20a_disable_channel(struct channel_gk20a *ch);
223void gk20a_channel_abort(struct channel_gk20a *ch, bool channel_preempt); 223void gk20a_channel_abort(struct channel_gk20a *ch, bool channel_preempt);
224void gk20a_channel_abort_clean_up(struct channel_gk20a *ch); 224void gk20a_channel_abort_clean_up(struct channel_gk20a *ch);