From 87f42744e0821d54eff7bf0bb863c7e53063e5c1 Mon Sep 17 00:00:00 2001 From: Deepak Nibade Date: Tue, 28 Nov 2017 02:26:31 -0800 Subject: gpu: nvgpu: initialize gr->max_comptag_mem in linux We initialize gr->max_comptag_mem in common code and with a global variable declared in Move this linux specific dependency to linux specific files i.e. initialize gr->max_comptag_mem during linux specific probe functions Jira NVGPU-414 Change-Id: I9415938bf1288b24950ba7ecc71abee3162dae64 Signed-off-by: Deepak Nibade Reviewed-on: https://git-master.nvidia.com/r/1606195 Reviewed-by: svc-mobile-coverity GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/common/linux/driver_common.c | 12 +++++++++++- drivers/gpu/nvgpu/common/linux/vgpu/vgpu.c | 5 +++++ drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 3 --- 3 files changed, 16 insertions(+), 4 deletions(-) (limited to 'drivers/gpu/nvgpu') diff --git a/drivers/gpu/nvgpu/common/linux/driver_common.c b/drivers/gpu/nvgpu/common/linux/driver_common.c index 45b53d88..1d1e5371 100644 --- a/drivers/gpu/nvgpu/common/linux/driver_common.c +++ b/drivers/gpu/nvgpu/common/linux/driver_common.c @@ -15,6 +15,7 @@ */ #include +#include #include #include @@ -43,7 +44,6 @@ static void nvgpu_init_vars(struct gk20a *g) nvgpu_cond_init(&l->sw_irq_stall_last_handled_wq); nvgpu_cond_init(&l->sw_irq_nonstall_last_handled_wq); - gk20a_init_gr(g); init_rwsem(&l->busy_lock); nvgpu_rwsem_init(&g->deterministic_busy); @@ -74,6 +74,15 @@ static void nvgpu_init_vars(struct gk20a *g) nvgpu_init_list_node(&g->boardobjgrp_head); } +static void nvgpu_init_gr_vars(struct gk20a *g) +{ + gk20a_init_gr(g); + + gk20a_dbg_info("total ram pages : %lu", totalram_pages); + g->gr.max_comptag_mem = totalram_pages + >> (10 - (PAGE_SHIFT - 10)); +} + static void nvgpu_init_timeout(struct gk20a *g) { struct gk20a_platform *platform = dev_get_drvdata(dev_from_gk20a(g)); @@ -187,6 +196,7 @@ int nvgpu_probe(struct gk20a *g, int err = 0; nvgpu_init_vars(g); + nvgpu_init_gr_vars(g); nvgpu_init_timeout(g); nvgpu_init_timeslice(g); nvgpu_init_pm_vars(g); diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/vgpu.c b/drivers/gpu/nvgpu/common/linux/vgpu/vgpu.c index 10c2211e..f6c13db1 100644 --- a/drivers/gpu/nvgpu/common/linux/vgpu/vgpu.c +++ b/drivers/gpu/nvgpu/common/linux/vgpu/vgpu.c @@ -16,6 +16,7 @@ * along with this program. If not, see . */ +#include #include #include #include @@ -756,6 +757,10 @@ int vgpu_probe(struct platform_device *pdev) vgpu_create_sysfs(dev); gk20a_init_gr(gk20a); + gk20a_dbg_info("total ram pages : %lu", totalram_pages); + gk20a->gr.max_comptag_mem = totalram_pages + >> (10 - (PAGE_SHIFT - 10)); + nvgpu_ref_init(&gk20a->refcount); return 0; diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index b3969b60..8a6db92c 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c @@ -4820,9 +4820,6 @@ static int gk20a_init_gr_setup_sw(struct gk20a *g) if (err) goto clean_up; - gk20a_dbg_info("total ram pages : %lu", totalram_pages); - gr->max_comptag_mem = totalram_pages - >> (10 - (PAGE_SHIFT - 10)); err = g->ops.ltc.init_comptags(g, gr); if (err) goto clean_up; -- cgit v1.2.2