diff options
author | Deepak Nibade <dnibade@nvidia.com> | 2014-09-17 03:07:52 -0400 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2015-03-18 15:11:17 -0400 |
commit | e4a7bc1602cc9a041dabee4da4a16594f2f9552a (patch) | |
tree | 942729bd383bf86f4bfda339e76d996bcfa4c40b /drivers/gpu/nvgpu/gk20a/fifo_gk20a.h | |
parent | efcd608f80028f6c7b2075b07a1112cd944408ac (diff) |
gpu: nvgpu: add API to recover TSG
- add and export API "gk20a_fifo_recover_tsg()" to
recover a TSG
- if TSG is running on any engine, then trigger MMU fault
on those engines
- otherwise, abort each channel in TSG
- modify channel specific API engines_on_ch() to generic
engines_on_id() which will take an ID and a flag to specify
whether ID is for channel or TSG and return engines running
on that ID
- modify channel specific API get_faulty_channel() to generic
get_faulty_id_type() which will take pointers to ID and type
of ID (either a regular channel or TSG)
- remove runlist update from recover_ch() since
no need to touch runlist during recovery
- set error notifier first and then only abort the channels
for TSG recovery path
- also, add necessary accessors to get engine
status type as TSG
Bug 1470692
Change-Id: I7137f611f80916b3d256d4b0dc6e5cf1e93eef6f
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: http://git-master/r/497873
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/fifo_gk20a.h')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/fifo_gk20a.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h index 04d22abb..e7560e27 100644 --- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h | |||
@@ -163,6 +163,7 @@ int gk20a_fifo_suspend(struct gk20a *g); | |||
163 | bool gk20a_fifo_mmu_fault_pending(struct gk20a *g); | 163 | bool gk20a_fifo_mmu_fault_pending(struct gk20a *g); |
164 | void gk20a_fifo_recover(struct gk20a *g, u32 engine_ids, bool verbose); | 164 | void gk20a_fifo_recover(struct gk20a *g, u32 engine_ids, bool verbose); |
165 | void gk20a_fifo_recover_ch(struct gk20a *g, u32 hw_chid, bool verbose); | 165 | void gk20a_fifo_recover_ch(struct gk20a *g, u32 hw_chid, bool verbose); |
166 | void gk20a_fifo_recover_tsg(struct gk20a *g, u32 tsgid, bool verbose); | ||
166 | int gk20a_init_fifo_reset_enable_hw(struct gk20a *g); | 167 | int gk20a_init_fifo_reset_enable_hw(struct gk20a *g); |
167 | void gk20a_init_fifo(struct gpu_ops *gops); | 168 | void gk20a_init_fifo(struct gpu_ops *gops); |
168 | 169 | ||