summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
diff options
context:
space:
mode:
authorAlex Waterman <alexw@nvidia.com>2018-03-06 13:43:16 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2018-03-07 21:04:41 -0500
commit418f31cd91a5c3ca45f0920ed64205def49c8a80 (patch)
tree17e3e04065679788aeeff645842866df0d59ccd0 /drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
parentf85a0d3e00b53453f3d5ca556f15465078473f31 (diff)
gpu: nvgpu: Enable IO coherency on GV100
This reverts commit 848af2ce6de6140323a6ffe3075bf8021e119434. This is a revert of a revert, etc, etc. It re-enables IO coherence again. JIRA EVLR-2333 Change-Id: Ibf97dce2f892e48a1200a06cd38a1c5d9603be04 Signed-off-by: Alex Waterman <alexw@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1669722 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/fifo_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/fifo_gk20a.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
index e12576d2..258006f9 100644
--- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
@@ -28,6 +28,7 @@
28#include <nvgpu/dma.h> 28#include <nvgpu/dma.h>
29#include <nvgpu/timers.h> 29#include <nvgpu/timers.h>
30#include <nvgpu/semaphore.h> 30#include <nvgpu/semaphore.h>
31#include <nvgpu/enabled.h>
31#include <nvgpu/kmem.h> 32#include <nvgpu/kmem.h>
32#include <nvgpu/log.h> 33#include <nvgpu/log.h>
33#include <nvgpu/soc.h> 34#include <nvgpu/soc.h>
@@ -666,11 +667,13 @@ static void fifo_engine_exception_status(struct gk20a *g,
666static int init_runlist(struct gk20a *g, struct fifo_gk20a *f) 667static int init_runlist(struct gk20a *g, struct fifo_gk20a *f)
667{ 668{
668 struct fifo_runlist_info_gk20a *runlist; 669 struct fifo_runlist_info_gk20a *runlist;
670 struct fifo_engine_info_gk20a *engine_info;
669 unsigned int runlist_id; 671 unsigned int runlist_id;
670 u32 i; 672 u32 i;
671 size_t runlist_size; 673 size_t runlist_size;
672 u32 active_engine_id, pbdma_id, engine_id; 674 u32 active_engine_id, pbdma_id, engine_id;
673 struct fifo_engine_info_gk20a *engine_info; 675 int flags = nvgpu_is_enabled(g, NVGPU_MM_USE_PHYSICAL_SG) ?
676 NVGPU_DMA_FORCE_CONTIGUOUS : 0;
674 677
675 nvgpu_log_fn(g, " "); 678 nvgpu_log_fn(g, " ");
676 679
@@ -705,8 +708,9 @@ static int init_runlist(struct gk20a *g, struct fifo_gk20a *f)
705 f->num_runlist_entries, runlist_size); 708 f->num_runlist_entries, runlist_size);
706 709
707 for (i = 0; i < MAX_RUNLIST_BUFFERS; i++) { 710 for (i = 0; i < MAX_RUNLIST_BUFFERS; i++) {
708 int err = nvgpu_dma_alloc_sys(g, runlist_size, 711 int err = nvgpu_dma_alloc_flags_sys(g, flags,
709 &runlist->mem[i]); 712 runlist_size,
713 &runlist->mem[i]);
710 if (err) { 714 if (err) {
711 nvgpu_err(g, "memory allocation failed"); 715 nvgpu_err(g, "memory allocation failed");
712 goto clean_up_runlist; 716 goto clean_up_runlist;
@@ -3240,8 +3244,9 @@ static int gk20a_fifo_update_runlist_locked(struct gk20a *g, u32 runlist_id,
3240 gk20a_writel(g, fifo_runlist_base_r(), 3244 gk20a_writel(g, fifo_runlist_base_r(),
3241 fifo_runlist_base_ptr_f(u64_lo32(runlist_iova >> 12)) | 3245 fifo_runlist_base_ptr_f(u64_lo32(runlist_iova >> 12)) |
3242 nvgpu_aperture_mask(g, &runlist->mem[new_buf], 3246 nvgpu_aperture_mask(g, &runlist->mem[new_buf],
3243 fifo_runlist_base_target_sys_mem_ncoh_f(), 3247 fifo_runlist_base_target_sys_mem_ncoh_f(),
3244 fifo_runlist_base_target_vid_mem_f())); 3248 fifo_runlist_base_target_sys_mem_coh_f(),
3249 fifo_runlist_base_target_vid_mem_f()));
3245 } 3250 }
3246 3251
3247 gk20a_writel(g, fifo_runlist_r(), 3252 gk20a_writel(g, fifo_runlist_r(),
@@ -3763,8 +3768,9 @@ static int gk20a_fifo_commit_userd(struct channel_gk20a *c)
3763 nvgpu_mem_wr32(g, &c->inst_block, 3768 nvgpu_mem_wr32(g, &c->inst_block,
3764 ram_in_ramfc_w() + ram_fc_userd_w(), 3769 ram_in_ramfc_w() + ram_fc_userd_w(),
3765 nvgpu_aperture_mask(g, &g->fifo.userd, 3770 nvgpu_aperture_mask(g, &g->fifo.userd,
3766 pbdma_userd_target_sys_mem_ncoh_f(), 3771 pbdma_userd_target_sys_mem_ncoh_f(),
3767 pbdma_userd_target_vid_mem_f()) | 3772 pbdma_userd_target_sys_mem_coh_f(),
3773 pbdma_userd_target_vid_mem_f()) |
3768 pbdma_userd_addr_f(addr_lo)); 3774 pbdma_userd_addr_f(addr_lo));
3769 3775
3770 nvgpu_mem_wr32(g, &c->inst_block, 3776 nvgpu_mem_wr32(g, &c->inst_block,