summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2017-04-14 19:15:50 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-04-24 03:13:39 -0400
commite1c27d4e84d518bef88305d1ca848deb07433677 (patch)
tree1a81b03c60f914020dead7fe5e7ffb4325c233af /drivers
parent7872900486bd31cf186930848adec46d0a13b68a (diff)
gpu: nvgpu: gv11b: Use new clk HAL
Use the new clk HAL to request clock rate instead of direct calls to Clock Framework. This cuts one direct dependency to Linux APIs. Also change the HAL to not clear clk ops after they've been initialized. JIRA NVGPU-16 Change-Id: I1ab3eac8268f1f3f3305d49782c6a0eb57c6d617 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/1463536 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Alex Waterman <alexw@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/gv11b/hal_gv11b.c2
-rw-r--r--drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c2
-rw-r--r--drivers/gpu/nvgpu/gv11b/pmu_gv11b.c3
3 files changed, 4 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
index 220d646b..7e2c35dc 100644
--- a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
+++ b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
@@ -182,7 +182,7 @@ int gv11b_init_hal(struct gk20a *g)
182 struct gpu_ops *gops = &g->ops; 182 struct gpu_ops *gops = &g->ops;
183 struct nvgpu_gpu_characteristics *c = &g->gpu_characteristics; 183 struct nvgpu_gpu_characteristics *c = &g->gpu_characteristics;
184 184
185 *gops = gv11b_ops; 185 gops->clock_gating = gv11b_ops.clock_gating;
186 186
187 /* boot in non-secure modes for time beeing */ 187 /* boot in non-secure modes for time beeing */
188 gops->privsecurity = 0; 188 gops->privsecurity = 0;
diff --git a/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c b/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
index 892fa442..a2a6cfd3 100644
--- a/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
+++ b/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
@@ -24,6 +24,7 @@
24 24
25#include "gk20a/platform_gk20a.h" 25#include "gk20a/platform_gk20a.h"
26#include "gk20a/gk20a.h" 26#include "gk20a/gk20a.h"
27#include "tegra/linux/clk.h"
27 28
28#include "gp10b/platform_gp10b.h" 29#include "gp10b/platform_gp10b.h"
29 30
@@ -50,6 +51,7 @@ static int gv11b_tegra_probe(struct device *dev)
50 platform->g->mm.vidmem_is_vidmem = platform->vidmem_is_vidmem; 51 platform->g->mm.vidmem_is_vidmem = platform->vidmem_is_vidmem;
51 52
52 gp10b_tegra_get_clocks(dev); 53 gp10b_tegra_get_clocks(dev);
54 nvgpu_linux_init_clk_support(platform->g);
53 55
54 return 0; 56 return 0;
55} 57}
diff --git a/drivers/gpu/nvgpu/gv11b/pmu_gv11b.c b/drivers/gpu/nvgpu/gv11b/pmu_gv11b.c
index 4cc45197..4784ee4a 100644
--- a/drivers/gpu/nvgpu/gv11b/pmu_gv11b.c
+++ b/drivers/gpu/nvgpu/gv11b/pmu_gv11b.c
@@ -37,7 +37,6 @@ static bool gv11b_is_pmu_supported(struct gk20a *g)
37static int gv11b_pmu_bootstrap(struct pmu_gk20a *pmu) 37static int gv11b_pmu_bootstrap(struct pmu_gk20a *pmu)
38{ 38{
39 struct gk20a *g = gk20a_from_pmu(pmu); 39 struct gk20a *g = gk20a_from_pmu(pmu);
40 struct gk20a_platform *platform = dev_get_drvdata(g->dev);
41 struct mm_gk20a *mm = &g->mm; 40 struct mm_gk20a *mm = &g->mm;
42 struct pmu_ucode_desc *desc = pmu->desc; 41 struct pmu_ucode_desc *desc = pmu->desc;
43 u64 addr_code_lo, addr_data_lo, addr_load_lo; 42 u64 addr_code_lo, addr_data_lo, addr_load_lo;
@@ -64,7 +63,7 @@ static int gv11b_pmu_bootstrap(struct pmu_gk20a *pmu)
64 pmu, GK20A_PMU_DMAIDX_VIRT); 63 pmu, GK20A_PMU_DMAIDX_VIRT);
65 64
66 g->ops.pmu_ver.set_pmu_cmdline_args_cpu_freq(pmu, 65 g->ops.pmu_ver.set_pmu_cmdline_args_cpu_freq(pmu,
67 clk_get_rate(platform->clk[1])); 66 g->ops.clk.get_rate(g, CTRL_CLK_DOMAIN_PWRCLK));
68 67
69 addr_args = (pwr_falcon_hwcfg_dmem_size_v( 68 addr_args = (pwr_falcon_hwcfg_dmem_size_v(
70 gk20a_readl(g, pwr_falcon_hwcfg_r())) 69 gk20a_readl(g, pwr_falcon_hwcfg_r()))