summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
diff options
context:
space:
mode:
authorRichard Zhao <rizhao@nvidia.com>2016-02-12 17:15:52 -0500
committerTerje Bergstrom <tbergstrom@nvidia.com>2016-03-22 13:19:23 -0400
commit97108797a28faaf3c7249345611f68817a99f522 (patch)
treecff54bfb8fc979fc507fb9794759cc83af5262e4 /drivers/gpu/nvgpu/gk20a/channel_gk20a.c
parenta13a4124c7de56d7c38cce106e16f88c429292f8 (diff)
gpu: nvgpu: enable semaphore acquire timeout only when timeouts_enabled is set
Bug 1727687 Change-Id: I7a7a4a2011b029474122fdbfbeb02b6302a5902b Signed-off-by: Richard Zhao <rizhao@nvidia.com> Reviewed-on: http://git-master/r/1011486 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
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