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/gm20b | |
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/gm20b')
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/hw_fifo_gm20b.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/hw_fifo_gm20b.h b/drivers/gpu/nvgpu/gm20b/hw_fifo_gm20b.h index 09e311ef..e0f41d34 100644 --- a/drivers/gpu/nvgpu/gm20b/hw_fifo_gm20b.h +++ b/drivers/gpu/nvgpu/gm20b/hw_fifo_gm20b.h | |||
@@ -390,6 +390,10 @@ static inline u32 fifo_engine_status_id_type_chid_v(void) | |||
390 | { | 390 | { |
391 | return 0x00000000; | 391 | return 0x00000000; |
392 | } | 392 | } |
393 | static inline u32 fifo_engine_status_id_type_tsgid_v(void) | ||
394 | { | ||
395 | return 0x00000001; | ||
396 | } | ||
393 | static inline u32 fifo_engine_status_ctx_status_v(u32 r) | 397 | static inline u32 fifo_engine_status_ctx_status_v(u32 r) |
394 | { | 398 | { |
395 | return (r >> 13) & 0x7; | 399 | return (r >> 13) & 0x7; |
@@ -474,6 +478,10 @@ static inline u32 fifo_pbdma_status_id_type_chid_v(void) | |||
474 | { | 478 | { |
475 | return 0x00000000; | 479 | return 0x00000000; |
476 | } | 480 | } |
481 | static inline u32 fifo_pbdma_status_id_type_tsgid_v(void) | ||
482 | { | ||
483 | return 0x00000001; | ||
484 | } | ||
477 | static inline u32 fifo_pbdma_status_chan_status_v(u32 r) | 485 | static inline u32 fifo_pbdma_status_chan_status_v(u32 r) |
478 | { | 486 | { |
479 | return (r >> 13) & 0x7; | 487 | return (r >> 13) & 0x7; |