diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2014-06-02 05:02:26 -0400 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2015-03-18 15:10:03 -0400 |
commit | 28c35a1b99cdfc8ef950241471a213a211bd1836 (patch) | |
tree | 97fab22efd375244cc2e5f011f85e9b881a62fa7 /drivers/gpu/nvgpu/gk20a/fifo_gk20a.h | |
parent | bcf8c6411cebde9435b97cb6b575b947205688fa (diff) |
gpu: nvgpu: Fault engines on PBDMA error
On PBDMA error even though the engine might not be wedged, we need to
kick the channel out of engine. Add that logic. Also when channel is
not in engine, we need to remove it from runlist.
Bug 1498688
Change-Id: I5939feb41d0a90635ba313b265c7e3b5d3f48622
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/417682
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-by: Kevin Huang (Eng-SW) <kevinh@nvidia.com>
Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/fifo_gk20a.h')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/fifo_gk20a.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h index 078ae8f0..8a4e0a8f 100644 --- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h | |||
@@ -149,6 +149,7 @@ int gk20a_fifo_enable_engine_activity(struct gk20a *g, | |||
149 | int gk20a_fifo_disable_engine_activity(struct gk20a *g, | 149 | int gk20a_fifo_disable_engine_activity(struct gk20a *g, |
150 | struct fifo_engine_info_gk20a *eng_info, | 150 | struct fifo_engine_info_gk20a *eng_info, |
151 | bool wait_for_idle); | 151 | bool wait_for_idle); |
152 | u32 gk20a_fifo_engines_on_ch(struct gk20a *g, u32 hw_chid); | ||
152 | 153 | ||
153 | int gk20a_fifo_update_runlist(struct gk20a *g, u32 engine_id, u32 hw_chid, | 154 | int gk20a_fifo_update_runlist(struct gk20a *g, u32 engine_id, u32 hw_chid, |
154 | bool add, bool wait_for_finish); | 155 | bool add, bool wait_for_finish); |
@@ -157,6 +158,7 @@ int gk20a_fifo_suspend(struct gk20a *g); | |||
157 | 158 | ||
158 | bool gk20a_fifo_mmu_fault_pending(struct gk20a *g); | 159 | bool gk20a_fifo_mmu_fault_pending(struct gk20a *g); |
159 | void gk20a_fifo_recover(struct gk20a *g, u32 engine_ids, bool verbose); | 160 | void gk20a_fifo_recover(struct gk20a *g, u32 engine_ids, bool verbose); |
161 | void gk20a_fifo_recover_ch(struct gk20a *g, u32 hw_chid, bool verbose); | ||
160 | int gk20a_init_fifo_reset_enable_hw(struct gk20a *g); | 162 | int gk20a_init_fifo_reset_enable_hw(struct gk20a *g); |
161 | void gk20a_init_fifo(struct gpu_ops *gops); | 163 | void gk20a_init_fifo(struct gpu_ops *gops); |
162 | 164 | ||