summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c
diff options
context:
space:
mode:
authorDebarshi Dutta <ddutta@nvidia.com>2017-08-18 06:52:29 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-08-22 06:53:51 -0400
commit81868a187fa3b217368206f17b19309846e8e7fb (patch)
tree2b59e33b61cc6e206f7781f3b4ab44c5c7b6d721 /drivers/gpu/nvgpu/vgpu/fifo_vgpu.c
parent5f010177de985c901c33c914efe70a8498a5974f (diff)
gpu: nvgpu: Nvgpu abstraction for linux barriers.
construct wrapper nvgpu_* methods to replace mb,rmb,wmb,smp_mb,smp_rmb,smp_wmb,read_barrier_depends and smp_read_barrier_depends. NVGPU-122 Change-Id: I8d24dd70fef5cb0fadaacc15f3ab11531667a0df Signed-off-by: Debarshi <ddutta@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1541199 Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Sourab Gupta <sourabg@nvidia.com> Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/vgpu/fifo_vgpu.c')
-rw-r--r--drivers/gpu/nvgpu/vgpu/fifo_vgpu.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c b/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c
index c8519905..3f03e25a 100644
--- a/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c
+++ b/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c
@@ -20,6 +20,7 @@
20#include <nvgpu/dma.h> 20#include <nvgpu/dma.h>
21#include <nvgpu/atomic.h> 21#include <nvgpu/atomic.h>
22#include <nvgpu/bug.h> 22#include <nvgpu/bug.h>
23#include <nvgpu/barrier.h>
23 24
24#include "vgpu/vgpu.h" 25#include "vgpu/vgpu.h"
25#include "gk20a/ctxsw_trace_gk20a.h" 26#include "gk20a/ctxsw_trace_gk20a.h"
@@ -42,7 +43,7 @@ static void vgpu_channel_bind(struct channel_gk20a *ch)
42 err = vgpu_comm_sendrecv(&msg, sizeof(msg), sizeof(msg)); 43 err = vgpu_comm_sendrecv(&msg, sizeof(msg), sizeof(msg));
43 WARN_ON(err || msg.ret); 44 WARN_ON(err || msg.ret);
44 45
45 wmb(); 46 nvgpu_smp_wmb();
46 nvgpu_atomic_set(&ch->bound, true); 47 nvgpu_atomic_set(&ch->bound, true);
47} 48}
48 49
@@ -370,7 +371,7 @@ static int vgpu_init_fifo_setup_hw(struct gk20a *g)
370 v = gk20a_bar1_readl(g, bar1_vaddr); 371 v = gk20a_bar1_readl(g, bar1_vaddr);
371 372
372 *cpu_vaddr = v1; 373 *cpu_vaddr = v1;
373 smp_mb(); 374 nvgpu_smp_mb();
374 375
375 if (v1 != gk20a_bar1_readl(g, bar1_vaddr)) { 376 if (v1 != gk20a_bar1_readl(g, bar1_vaddr)) {
376 nvgpu_err(g, "bar1 broken @ gk20a!"); 377 nvgpu_err(g, "bar1 broken @ gk20a!");
@@ -728,7 +729,7 @@ static void vgpu_fifo_set_ctx_mmu_error(struct gk20a *g,
728 729
729 /* mark channel as faulted */ 730 /* mark channel as faulted */
730 ch->has_timedout = true; 731 ch->has_timedout = true;
731 wmb(); 732 nvgpu_smp_wmb();
732 /* unblock pending waits */ 733 /* unblock pending waits */
733 nvgpu_cond_broadcast_interruptible(&ch->semaphore_wq); 734 nvgpu_cond_broadcast_interruptible(&ch->semaphore_wq);
734 nvgpu_cond_broadcast_interruptible(&ch->notifier_wq); 735 nvgpu_cond_broadcast_interruptible(&ch->notifier_wq);