summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
index 6eecebf5..654388cb 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
@@ -214,6 +214,12 @@ u32 channel_gk20a_pbdma_acquire_val(struct channel_gk20a *c)
214 u64 timeout; 214 u64 timeout;
215 int val_len; 215 int val_len;
216 216
217 val = pbdma_acquire_retry_man_2_f() |
218 pbdma_acquire_retry_exp_2_f();
219
220 if (!c->g->timeouts_enabled)
221 return val;
222
217 timeout = gk20a_get_channel_watchdog_timeout(c); 223 timeout = gk20a_get_channel_watchdog_timeout(c);
218 do_div(timeout, 2); /* set acquire timeout to half of channel wdt */ 224 do_div(timeout, 2); /* set acquire timeout to half of channel wdt */
219 timeout *= 1000000UL; /* ms -> ns */ 225 timeout *= 1000000UL; /* ms -> ns */
@@ -232,11 +238,10 @@ u32 channel_gk20a_pbdma_acquire_val(struct channel_gk20a *c)
232 man = timeout; 238 man = timeout;
233 } 239 }
234 240
235 val = pbdma_acquire_retry_man_2_f() | 241 val |= pbdma_acquire_timeout_exp_f(exp) |
236 pbdma_acquire_retry_exp_2_f() |
237 pbdma_acquire_timeout_exp_f(exp) |
238 pbdma_acquire_timeout_man_f(man) | 242 pbdma_acquire_timeout_man_f(man) |
239 pbdma_acquire_timeout_en_enable_f(); 243 pbdma_acquire_timeout_en_enable_f();
244
240 return val; 245 return val;
241} 246}
242 247