diff options
author | Seema Khowala <seemaj@nvidia.com> | 2017-06-22 19:31:27 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-06-27 06:56:54 -0400 |
commit | f500f45ebf7c658d67ec6001d2e88105d7e3f875 (patch) | |
tree | 660c02df69d8b3afb7c8ae18b70cda66ecdc5fda /drivers/gpu/nvgpu/include | |
parent | b8c92ae1d8b7f2fcee006729fd55f5c315ba9349 (diff) |
gpu: nvgpu: gv11b: implement ctxnotvalid pbdma_intr_1
Pbdma which encountered the ctxnotvalid interrupt will stall and
prevent the channel which was loaded at the time the interrupt fired
from being swapped out until the interrupt is cleared.
CTXNOTVALID pbdma interrupt indicates error conditions related
to the *_CTX_VALID fields for a channel. The following
conditions trigger the interrupt:
* CTX_VALID bit for the targeted engine is FALSE
* At channel start/resume, all preemptible eng have CTX_VALID FALSE but:
- CTX_RELOAD is set in CCSR_CHANNEL_STATUS,
- PBDMA_TARGET_SHOULD_SEND_HOST_TSG_EVENT is TRUE, or
- PBDMA_TARGET_NEEDS_HOST_TSG_EVENT is TRUE
JIRA GPUT19X-47
Change-Id: If65ce1fcdbaebd6b1d8313fdddf9e3e0fa51e885
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1329372
GVS: Gerrit_Virtual_Submit
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/include')
-rw-r--r-- | drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_pbdma_gv11b.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_pbdma_gv11b.h b/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_pbdma_gv11b.h index ed63cebc..abdbc17d 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_pbdma_gv11b.h +++ b/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_pbdma_gv11b.h | |||
@@ -502,6 +502,14 @@ static inline u32 pbdma_intr_1_r(u32 i) | |||
502 | { | 502 | { |
503 | return 0x00040148 + i*8192; | 503 | return 0x00040148 + i*8192; |
504 | } | 504 | } |
505 | static inline u32 pbdma_intr_1_ctxnotvalid_m(void) | ||
506 | { | ||
507 | return 0x1 << 31; | ||
508 | } | ||
509 | static inline u32 pbdma_intr_1_ctxnotvalid_pending_f(void) | ||
510 | { | ||
511 | return 0x80000000; | ||
512 | } | ||
505 | static inline u32 pbdma_intr_en_0_r(u32 i) | 513 | static inline u32 pbdma_intr_en_0_r(u32 i) |
506 | { | 514 | { |
507 | return 0x0004010c + i*8192; | 515 | return 0x0004010c + i*8192; |