diff options
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/fifo_gv11b.c | 8 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/fifo_gv11b.h | 1 |
2 files changed, 8 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/fifo_gv11b.c b/drivers/gpu/nvgpu/gv11b/fifo_gv11b.c index 13d498a7..abea39b6 100644 --- a/drivers/gpu/nvgpu/gv11b/fifo_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/fifo_gv11b.c | |||
@@ -381,7 +381,13 @@ u32 gv11b_fifo_intr_0_error_mask(struct gk20a *g) | |||
381 | 381 | ||
382 | u32 gv11b_fifo_get_preempt_timeout(struct gk20a *g) | 382 | u32 gv11b_fifo_get_preempt_timeout(struct gk20a *g) |
383 | { | 383 | { |
384 | return gk20a_get_gr_idle_timeout(g); | 384 | /* if timeouts are enabled, using 3000ms timeout |
385 | * for polling pdma/eng/runlist might kick in | ||
386 | * timeout handler in the cases where preempt | ||
387 | * is stuck. Use 1000ms timeout for polling when | ||
388 | * timeouts are enabled */ | ||
389 | return nvgpu_is_timeouts_enabled(g) ? PREEMPT_TIMEOUT_1000_MS : | ||
390 | g->gr_idle_timeout_default; | ||
385 | } | 391 | } |
386 | 392 | ||
387 | static int gv11b_fifo_poll_pbdma_chan_status(struct gk20a *g, u32 id, | 393 | static int gv11b_fifo_poll_pbdma_chan_status(struct gk20a *g, u32 id, |
diff --git a/drivers/gpu/nvgpu/gv11b/fifo_gv11b.h b/drivers/gpu/nvgpu/gv11b/fifo_gv11b.h index 5ff16453..66efdd3b 100644 --- a/drivers/gpu/nvgpu/gv11b/fifo_gv11b.h +++ b/drivers/gpu/nvgpu/gv11b/fifo_gv11b.h | |||
@@ -51,6 +51,7 @@ | |||
51 | #define CHANNEL_INFO_VEID0 0 | 51 | #define CHANNEL_INFO_VEID0 0 |
52 | 52 | ||
53 | #define MAX_PRE_SI_RETRIES 200000 /* 1G/500KHz * 100 */ | 53 | #define MAX_PRE_SI_RETRIES 200000 /* 1G/500KHz * 100 */ |
54 | #define PREEMPT_TIMEOUT_1000_MS 1000 | ||
54 | 55 | ||
55 | struct gpu_ops; | 56 | struct gpu_ops; |
56 | 57 | ||