From a5364c30b1298aec1f2c9f89aee7d94a31619c19 Mon Sep 17 00:00:00 2001 From: seshendra Gadagottu Date: Wed, 28 Feb 2018 17:56:34 -0800 Subject: gpu: nvgpu: gv11b: pmu: add dma coherent support Setup pmu apertures based on dma coherent property. Bug 200394053 Change-Id: I45beff671e4b8741f2b1ffbc811618b074772ea0 Signed-off-by: seshendra Gadagottu Reviewed-on: https://git-master.nvidia.com/r/1641609 Reviewed-by: svc-mobile-coverity GVS: Gerrit_Virtual_Submit Reviewed-by: Thomas Fleury Reviewed-by: Terje Bergstrom Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/gv11b/acr_gv11b.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'drivers/gpu/nvgpu/gv11b/acr_gv11b.c') diff --git a/drivers/gpu/nvgpu/gv11b/acr_gv11b.c b/drivers/gpu/nvgpu/gv11b/acr_gv11b.c index 4fa3f324..7ca8c703 100644 --- a/drivers/gpu/nvgpu/gv11b/acr_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/acr_gv11b.c @@ -29,8 +29,8 @@ #include #include #include -#include #include +#include #include "gk20a/gk20a.h" #include "acr_gv11b.h" @@ -248,16 +248,25 @@ static int bl_bootstrap(struct nvgpu_pmu *pmu, void gv11b_setup_apertures(struct gk20a *g) { + struct mm_gk20a *mm = &g->mm; + struct nvgpu_mem *inst_block = &mm->pmu.inst_block; + /* setup apertures - virtual */ gk20a_writel(g, pwr_fbif_transcfg_r(GK20A_PMU_DMAIDX_UCODE), pwr_fbif_transcfg_mem_type_physical_f() | - pwr_fbif_transcfg_target_noncoherent_sysmem_f()); + nvgpu_aperture_mask(g, inst_block, + pwr_fbif_transcfg_target_noncoherent_sysmem_f(), + pwr_fbif_transcfg_target_coherent_sysmem_f(), + pwr_fbif_transcfg_target_local_fb_f())); gk20a_writel(g, pwr_fbif_transcfg_r(GK20A_PMU_DMAIDX_VIRT), pwr_fbif_transcfg_mem_type_virtual_f()); /* setup apertures - physical */ gk20a_writel(g, pwr_fbif_transcfg_r(GK20A_PMU_DMAIDX_PHYS_VID), pwr_fbif_transcfg_mem_type_physical_f() | - pwr_fbif_transcfg_target_noncoherent_sysmem_f()); + nvgpu_aperture_mask(g, inst_block, + pwr_fbif_transcfg_target_noncoherent_sysmem_f(), + pwr_fbif_transcfg_target_coherent_sysmem_f(), + pwr_fbif_transcfg_target_local_fb_f())); gk20a_writel(g, pwr_fbif_transcfg_r(GK20A_PMU_DMAIDX_PHYS_SYS_COH), pwr_fbif_transcfg_mem_type_physical_f() | pwr_fbif_transcfg_target_coherent_sysmem_f()); -- cgit v1.2.2