summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/channel_sync_gk20a.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_sync_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_sync_gk20a.c38
1 files changed, 2 insertions, 36 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_sync_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_sync_gk20a.c
index 68fbb738..7a664bf8 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_sync_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/channel_sync_gk20a.c
@@ -372,41 +372,7 @@ static void add_sema_cmd(struct gk20a *g, struct channel_gk20a *c,
372 if (!acquire) 372 if (!acquire)
373 nvgpu_semaphore_prepare(s, c->hw_sema); 373 nvgpu_semaphore_prepare(s, c->hw_sema);
374 374
375 /* semaphore_a */ 375 g->ops.fifo.add_sema_cmd(g, s, va, cmd, off, acquire, wfi);
376 nvgpu_mem_wr32(g, cmd->mem, off++, 0x20010004);
377 /* offset_upper */
378 nvgpu_mem_wr32(g, cmd->mem, off++, (va >> 32) & 0xff);
379 /* semaphore_b */
380 nvgpu_mem_wr32(g, cmd->mem, off++, 0x20010005);
381 /* offset */
382 nvgpu_mem_wr32(g, cmd->mem, off++, va & 0xffffffff);
383
384 if (acquire) {
385 /* semaphore_c */
386 nvgpu_mem_wr32(g, cmd->mem, off++, 0x20010006);
387 /* payload */
388 nvgpu_mem_wr32(g, cmd->mem, off++,
389 nvgpu_semaphore_get_value(s));
390 /* semaphore_d */
391 nvgpu_mem_wr32(g, cmd->mem, off++, 0x20010007);
392 /* operation: acq_geq, switch_en */
393 nvgpu_mem_wr32(g, cmd->mem, off++, 0x4 | (0x1 << 12));
394 } else {
395 /* semaphore_c */
396 nvgpu_mem_wr32(g, cmd->mem, off++, 0x20010006);
397 /* payload */
398 nvgpu_mem_wr32(g, cmd->mem, off++,
399 nvgpu_semaphore_get_value(s));
400 /* semaphore_d */
401 nvgpu_mem_wr32(g, cmd->mem, off++, 0x20010007);
402 /* operation: release, wfi */
403 nvgpu_mem_wr32(g, cmd->mem, off++,
404 0x2 | ((wfi ? 0x0 : 0x1) << 20));
405 /* non_stall_int */
406 nvgpu_mem_wr32(g, cmd->mem, off++, 0x20010008);
407 /* ignored */
408 nvgpu_mem_wr32(g, cmd->mem, off++, 0);
409 }
410 376
411 if (acquire) 377 if (acquire)
412 gpu_sema_verbose_dbg(g, "(A) c=%d ACQ_GE %-4u pool=%-3d" 378 gpu_sema_verbose_dbg(g, "(A) c=%d ACQ_GE %-4u pool=%-3d"
@@ -495,7 +461,7 @@ static int __gk20a_channel_semaphore_incr(
495 return -ENOMEM; 461 return -ENOMEM;
496 } 462 }
497 463
498 incr_cmd_size = 10; 464 incr_cmd_size = c->g->ops.fifo.get_sema_incr_cmd_size();
499 err = gk20a_channel_alloc_priv_cmdbuf(c, incr_cmd_size, incr_cmd); 465 err = gk20a_channel_alloc_priv_cmdbuf(c, incr_cmd_size, incr_cmd);
500 if (err) { 466 if (err) {
501 nvgpu_err(c->g, 467 nvgpu_err(c->g,