summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2014-05-08 02:09:49 -0400
committerDan Willemsen <dwillemsen@nvidia.com>2015-03-18 15:09:49 -0400
commit3e5c123862c87e22311c21558178f287f85ecb5d (patch)
treee0bef0d98cf00237fce691e9f2b4cab2901a879b /drivers/gpu/nvgpu/gk20a/mm_gk20a.c
parentdf1852752a3ba9365ae6dca2795af4d43267896d (diff)
gpu: nvgpu: Always initialize system vm
PMU, FECS and GPCCS use the same address space. We used to initialize the address space only if PMU is enabled. Create the system address space always. FECS and GPCCS used to have slower bit bang and faster DMA method for loading ucode. Slower method is needed when FECS and GPCCS do not have an address space. Remove the slower method as not anymore needed. Change-Id: I155619741ecc36aa6bf13a9c1ccb03c7c1330f0a Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/406771
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/mm_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/mm_gk20a.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
index be22e4a0..234b43c2 100644
--- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
@@ -113,7 +113,8 @@ static int update_gmmu_ptes_locked(struct vm_gk20a *vm,
113 int rw_flag); 113 int rw_flag);
114static void update_gmmu_pde_locked(struct vm_gk20a *vm, u32 i); 114static void update_gmmu_pde_locked(struct vm_gk20a *vm, u32 i);
115static void gk20a_vm_remove_support(struct vm_gk20a *vm); 115static void gk20a_vm_remove_support(struct vm_gk20a *vm);
116 116static int gk20a_init_system_vm(struct mm_gk20a *mm);
117static int gk20a_init_bar1_vm(struct mm_gk20a *mm);
117 118
118/* note: keep the page sizes sorted lowest to highest here */ 119/* note: keep the page sizes sorted lowest to highest here */
119static const u32 gmmu_page_sizes[gmmu_nr_page_sizes] = { SZ_4K, SZ_128K }; 120static const u32 gmmu_page_sizes[gmmu_nr_page_sizes] = { SZ_4K, SZ_128K };
@@ -341,6 +342,7 @@ int gk20a_init_mm_setup_sw(struct gk20a *g)
341 342
342 343
343 gk20a_init_bar1_vm(mm); 344 gk20a_init_bar1_vm(mm);
345 gk20a_init_system_vm(mm);
344 346
345 mm->remove_support = gk20a_remove_mm_support; 347 mm->remove_support = gk20a_remove_mm_support;
346 mm->sw_ready = true; 348 mm->sw_ready = true;
@@ -2486,7 +2488,7 @@ int gk20a_vm_unmap_buffer(struct gk20a_as_share *as_share, u64 offset)
2486 return 0; 2488 return 0;
2487} 2489}
2488 2490
2489int gk20a_init_bar1_vm(struct mm_gk20a *mm) 2491static int gk20a_init_bar1_vm(struct mm_gk20a *mm)
2490{ 2492{
2491 int err; 2493 int err;
2492 phys_addr_t inst_pa; 2494 phys_addr_t inst_pa;
@@ -2630,7 +2632,7 @@ clean_up:
2630} 2632}
2631 2633
2632/* pmu vm, share channel_vm interfaces */ 2634/* pmu vm, share channel_vm interfaces */
2633int gk20a_init_pmu_vm(struct mm_gk20a *mm) 2635static int gk20a_init_system_vm(struct mm_gk20a *mm)
2634{ 2636{
2635 int err; 2637 int err;
2636 phys_addr_t inst_pa; 2638 phys_addr_t inst_pa;