summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gm20b
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2017-02-02 16:24:21 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2017-03-16 14:48:29 -0400
commit589d6385b19a357cf566b75ded9355f9b8053ad7 (patch)
tree6453c1d3525c6a53b7b749a39b51e4a598680a64 /drivers/gpu/nvgpu/gm20b
parent686c3b701fb1db75a0b416a25c288c04a396df31 (diff)
gpu: nvgpu: Implement get_rate/set_rate as GPU op
Move clock APIs from gk20a_platform to gpu_ops. At the same time allow use of internal get_rate/set_rate for querying both GPCCLK and PWRCLK on iGPU. At the same time we can replace calls to clk framework with the new HAL and drop direct dependency to clk framework. gp10b ops were replaced as a whole at HAL initialization. That replaces anything set in platform probe stage, so reduce that to touch only clock gating regs. Change-Id: Iaf219b1f000d362dbf397d45832f52d25463b31c Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/1300113 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b')
-rw-r--r--drivers/gpu/nvgpu/gm20b/acr_gm20b.c4
-rw-r--r--drivers/gpu/nvgpu/gm20b/hal_gm20b.c2
2 files changed, 2 insertions, 4 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/acr_gm20b.c b/drivers/gpu/nvgpu/gm20b/acr_gm20b.c
index ed144c0f..2d932b67 100644
--- a/drivers/gpu/nvgpu/gm20b/acr_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/acr_gm20b.c
@@ -13,7 +13,6 @@
13 13
14#include <linux/delay.h> /* for mdelay */ 14#include <linux/delay.h> /* for mdelay */
15#include <linux/firmware.h> 15#include <linux/firmware.h>
16#include <linux/clk.h>
17#include <linux/module.h> 16#include <linux/module.h>
18#include <linux/debugfs.h> 17#include <linux/debugfs.h>
19#include <linux/dma-mapping.h> 18#include <linux/dma-mapping.h>
@@ -1317,7 +1316,6 @@ static int gm20b_init_pmu_setup_hw1(struct gk20a *g,
1317 1316
1318 struct pmu_gk20a *pmu = &g->pmu; 1317 struct pmu_gk20a *pmu = &g->pmu;
1319 int err; 1318 int err;
1320 struct gk20a_platform *platform = dev_get_drvdata(g->dev);
1321 1319
1322 gk20a_dbg_fn(""); 1320 gk20a_dbg_fn("");
1323 1321
@@ -1345,7 +1343,7 @@ static int gm20b_init_pmu_setup_hw1(struct gk20a *g,
1345 1343
1346 /*Copying pmu cmdline args*/ 1344 /*Copying pmu cmdline args*/
1347 g->ops.pmu_ver.set_pmu_cmdline_args_cpu_freq(pmu, 1345 g->ops.pmu_ver.set_pmu_cmdline_args_cpu_freq(pmu,
1348 clk_get_rate(platform->clk[1])); 1346 g->ops.clk.get_rate(g, CTRL_CLK_DOMAIN_PWRCLK));
1349 g->ops.pmu_ver.set_pmu_cmdline_args_secure_mode(pmu, 1); 1347 g->ops.pmu_ver.set_pmu_cmdline_args_secure_mode(pmu, 1);
1350 g->ops.pmu_ver.set_pmu_cmdline_args_trace_size( 1348 g->ops.pmu_ver.set_pmu_cmdline_args_trace_size(
1351 pmu, GK20A_PMU_TRACE_BUFSIZE); 1349 pmu, GK20A_PMU_TRACE_BUFSIZE);
diff --git a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
index d9fb2c53..ad041f67 100644
--- a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
@@ -185,7 +185,7 @@ int gm20b_init_hal(struct gk20a *g)
185 struct gk20a_platform *platform = dev_get_drvdata(g->dev); 185 struct gk20a_platform *platform = dev_get_drvdata(g->dev);
186 u32 val; 186 u32 val;
187 187
188 *gops = gm20b_ops; 188 gops->clock_gating = gm20b_ops.clock_gating;
189 gops->securegpccs = false; 189 gops->securegpccs = false;
190 gops->pmupstate = false; 190 gops->pmupstate = false;
191#ifdef CONFIG_TEGRA_ACR 191#ifdef CONFIG_TEGRA_ACR