summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gm20b
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2014-09-17 03:07:52 -0400
committerDan Willemsen <dwillemsen@nvidia.com>2015-03-18 15:11:17 -0400
commite4a7bc1602cc9a041dabee4da4a16594f2f9552a (patch)
tree942729bd383bf86f4bfda339e76d996bcfa4c40b /drivers/gpu/nvgpu/gm20b
parentefcd608f80028f6c7b2075b07a1112cd944408ac (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.h8
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}
393static inline u32 fifo_engine_status_id_type_tsgid_v(void)
394{
395 return 0x00000001;
396}
393static inline u32 fifo_engine_status_ctx_status_v(u32 r) 397static 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}
481static inline u32 fifo_pbdma_status_id_type_tsgid_v(void)
482{
483 return 0x00000001;
484}
477static inline u32 fifo_pbdma_status_chan_status_v(u32 r) 485static inline u32 fifo_pbdma_status_chan_status_v(u32 r)
478{ 486{
479 return (r >> 13) & 0x7; 487 return (r >> 13) & 0x7;