diff options
author | Deepak Nibade <dnibade@nvidia.com> | 2017-11-28 05:26:31 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-11-28 12:10:10 -0500 |
commit | 87f42744e0821d54eff7bf0bb863c7e53063e5c1 (patch) | |
tree | dc63ad1843181b11580668708e9493ef06838be9 /drivers/gpu/nvgpu/common/linux/driver_common.c | |
parent | 4f8ba3ad0e2bdca3695bf1028cedd58eb87d6d51 (diff) |
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 <linux/mm.h>
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 <dnibade@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1606195
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/common/linux/driver_common.c')
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/driver_common.c | 12 |
1 files changed, 11 insertions, 1 deletions
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 @@ | |||
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/dma-mapping.h> | 17 | #include <linux/dma-mapping.h> |
18 | #include <linux/mm.h> | ||
18 | #include <uapi/linux/nvgpu.h> | 19 | #include <uapi/linux/nvgpu.h> |
19 | 20 | ||
20 | #include <nvgpu/kmem.h> | 21 | #include <nvgpu/kmem.h> |
@@ -43,7 +44,6 @@ static void nvgpu_init_vars(struct gk20a *g) | |||
43 | 44 | ||
44 | nvgpu_cond_init(&l->sw_irq_stall_last_handled_wq); | 45 | nvgpu_cond_init(&l->sw_irq_stall_last_handled_wq); |
45 | nvgpu_cond_init(&l->sw_irq_nonstall_last_handled_wq); | 46 | nvgpu_cond_init(&l->sw_irq_nonstall_last_handled_wq); |
46 | gk20a_init_gr(g); | ||
47 | 47 | ||
48 | init_rwsem(&l->busy_lock); | 48 | init_rwsem(&l->busy_lock); |
49 | nvgpu_rwsem_init(&g->deterministic_busy); | 49 | nvgpu_rwsem_init(&g->deterministic_busy); |
@@ -74,6 +74,15 @@ static void nvgpu_init_vars(struct gk20a *g) | |||
74 | nvgpu_init_list_node(&g->boardobjgrp_head); | 74 | nvgpu_init_list_node(&g->boardobjgrp_head); |
75 | } | 75 | } |
76 | 76 | ||
77 | static void nvgpu_init_gr_vars(struct gk20a *g) | ||
78 | { | ||
79 | gk20a_init_gr(g); | ||
80 | |||
81 | gk20a_dbg_info("total ram pages : %lu", totalram_pages); | ||
82 | g->gr.max_comptag_mem = totalram_pages | ||
83 | >> (10 - (PAGE_SHIFT - 10)); | ||
84 | } | ||
85 | |||
77 | static void nvgpu_init_timeout(struct gk20a *g) | 86 | static void nvgpu_init_timeout(struct gk20a *g) |
78 | { | 87 | { |
79 | struct gk20a_platform *platform = dev_get_drvdata(dev_from_gk20a(g)); | 88 | struct gk20a_platform *platform = dev_get_drvdata(dev_from_gk20a(g)); |
@@ -187,6 +196,7 @@ int nvgpu_probe(struct gk20a *g, | |||
187 | int err = 0; | 196 | int err = 0; |
188 | 197 | ||
189 | nvgpu_init_vars(g); | 198 | nvgpu_init_vars(g); |
199 | nvgpu_init_gr_vars(g); | ||
190 | nvgpu_init_timeout(g); | 200 | nvgpu_init_timeout(g); |
191 | nvgpu_init_timeslice(g); | 201 | nvgpu_init_timeslice(g); |
192 | nvgpu_init_pm_vars(g); | 202 | nvgpu_init_pm_vars(g); |