summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
diff options
context:
space:
mode:
authorKonsta Holtta <kholtta@nvidia.com>2016-05-20 02:12:23 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2016-06-08 15:05:05 -0400
commitd215bc1107a8a032d18e515e55d5e29c7192f15e (patch)
tree2873d7d453cd727d7ee865b9f73408be3ec92539 /drivers/gpu/nvgpu/gk20a/mm_gk20a.c
parent2219f38727ffa17291e15c1898bd3e65f43d09fd (diff)
gpu: nvgpu: detect vidmem configuration from HW
Read video memory size from hardware during initialization for devices that support it. JIRA DNVGPU-14 Change-Id: If190f2d89f7148520ee274ca674f972987c8056d Signed-off-by: Konsta Holtta <kholtta@nvidia.com> Reviewed-on: http://git-master/r/1157215 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/mm_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/mm_gk20a.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
index 6505015f..60c1b7ea 100644
--- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
@@ -613,6 +613,20 @@ static void gk20a_init_pramin(struct mm_gk20a *mm)
613 mm->force_pramin = GK20A_FORCE_PRAMIN_DEFAULT; 613 mm->force_pramin = GK20A_FORCE_PRAMIN_DEFAULT;
614} 614}
615 615
616static int gk20a_init_vidmem(struct mm_gk20a *mm)
617{
618 struct gk20a *g = mm->g;
619 size_t size = g->ops.mm.get_vidmem_size ?
620 g->ops.mm.get_vidmem_size(g) : 0;
621
622 if (!size)
623 return 0;
624
625 mm->vidmem_size = size;
626
627 return 0;
628}
629
616int gk20a_init_mm_setup_sw(struct gk20a *g) 630int gk20a_init_mm_setup_sw(struct gk20a *g)
617{ 631{
618 struct mm_gk20a *mm = &g->mm; 632 struct mm_gk20a *mm = &g->mm;
@@ -637,6 +651,7 @@ int gk20a_init_mm_setup_sw(struct gk20a *g)
637 (int)(mm->channel.kernel_size >> 20)); 651 (int)(mm->channel.kernel_size >> 20));
638 652
639 gk20a_init_pramin(mm); 653 gk20a_init_pramin(mm);
654 gk20a_init_vidmem(mm);
640 655
641 err = gk20a_alloc_sysmem_flush(g); 656 err = gk20a_alloc_sysmem_flush(g);
642 if (err) 657 if (err)