summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNitin Kumbhar <nkumbhar@nvidia.com>2018-08-12 13:29:24 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-09-05 07:51:40 -0400
commit0406900ca944305f9713905f4d7363fc2d9cbbea (patch)
treebab057995860797dad2cbf7dd3d6e115117b3d1e
parentf16cc93d0a7c818327f08ece1d7fcbefcdbb055b (diff)
gpu: nvgpu: move gm20b clk debugfs to linux
Use nvgpu_os_linux_ops to initialize gm20b debugfs functions. gm20b_clk_init_debugfs() will be invoked during initialization from nvgpu_finalize_poweron_linux(). JIRA NVGPU-603 Change-Id: Ie89e427cc589ae14e1e7f5918d918126fb4afd77 Signed-off-by: Nitin Kumbhar <nkumbhar@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1797905 Reviewed-by: svc-misra-checker <svc-misra-checker@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
-rw-r--r--drivers/gpu/nvgpu/gm20b/clk_gm20b.c11
-rw-r--r--drivers/gpu/nvgpu/gm20b/clk_gm20b.h3
-rw-r--r--drivers/gpu/nvgpu/gm20b/hal_gm20b.c3
-rw-r--r--drivers/gpu/nvgpu/os/linux/debug_clk_gm20b.h29
-rw-r--r--drivers/gpu/nvgpu/os/linux/os_ops_gm20b.c5
5 files changed, 34 insertions, 17 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/clk_gm20b.c b/drivers/gpu/nvgpu/gm20b/clk_gm20b.c
index 2ba677b0..03fed222 100644
--- a/drivers/gpu/nvgpu/gm20b/clk_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/clk_gm20b.c
@@ -1490,17 +1490,6 @@ int gm20b_init_clk_support(struct gk20a *g)
1490 err = set_pll_freq(g, 1); 1490 err = set_pll_freq(g, 1);
1491 } 1491 }
1492 nvgpu_mutex_release(&clk->clk_mutex); 1492 nvgpu_mutex_release(&clk->clk_mutex);
1493 if (err) {
1494 return err;
1495 }
1496
1497 if (!clk->debugfs_set && g->ops.clk.init_debugfs) {
1498 err = g->ops.clk.init_debugfs(g);
1499 if (err) {
1500 return err;
1501 }
1502 clk->debugfs_set = true;
1503 }
1504 1493
1505 return err; 1494 return err;
1506} 1495}
diff --git a/drivers/gpu/nvgpu/gm20b/clk_gm20b.h b/drivers/gpu/nvgpu/gm20b/clk_gm20b.h
index c93d4ee3..09b1bdcc 100644
--- a/drivers/gpu/nvgpu/gm20b/clk_gm20b.h
+++ b/drivers/gpu/nvgpu/gm20b/clk_gm20b.h
@@ -70,9 +70,6 @@ int gm20b_gpcclk_set_rate(struct clk_gk20a *clk, unsigned long rate,
70long gm20b_round_rate(struct clk_gk20a *clk, unsigned long rate, 70long gm20b_round_rate(struct clk_gk20a *clk, unsigned long rate,
71 unsigned long *parent_rate); 71 unsigned long *parent_rate);
72struct pll_parms *gm20b_get_gpc_pll_parms(void); 72struct pll_parms *gm20b_get_gpc_pll_parms(void);
73#ifdef CONFIG_DEBUG_FS
74int gm20b_clk_init_debugfs(struct gk20a *g);
75#endif
76 73
77int gm20b_clk_pll_reg_write(struct gk20a *g, u32 reg, u32 val); 74int gm20b_clk_pll_reg_write(struct gk20a *g, u32 reg, u32 val);
78int gm20b_init_clk_support(struct gk20a *g); 75int gm20b_init_clk_support(struct gk20a *g);
diff --git a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
index 51ddb561..512da9df 100644
--- a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
@@ -555,9 +555,6 @@ static const struct gpu_ops gm20b_ops = {
555 .clk = { 555 .clk = {
556 .init_clk_support = gm20b_init_clk_support, 556 .init_clk_support = gm20b_init_clk_support,
557 .suspend_clk_support = gm20b_suspend_clk_support, 557 .suspend_clk_support = gm20b_suspend_clk_support,
558#ifdef CONFIG_DEBUG_FS
559 .init_debugfs = gm20b_clk_init_debugfs,
560#endif
561 .get_voltage = gm20b_clk_get_voltage, 558 .get_voltage = gm20b_clk_get_voltage,
562 .get_gpcclk_clock_counter = gm20b_clk_get_gpcclk_clock_counter, 559 .get_gpcclk_clock_counter = gm20b_clk_get_gpcclk_clock_counter,
563 .pll_reg_write = gm20b_clk_pll_reg_write, 560 .pll_reg_write = gm20b_clk_pll_reg_write,
diff --git a/drivers/gpu/nvgpu/os/linux/debug_clk_gm20b.h b/drivers/gpu/nvgpu/os/linux/debug_clk_gm20b.h
new file mode 100644
index 00000000..850ad895
--- /dev/null
+++ b/drivers/gpu/nvgpu/os/linux/debug_clk_gm20b.h
@@ -0,0 +1,29 @@
1/*
2 * Copyright (c) 2018, NVIDIA Corporation. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms and conditions of the GNU General Public License,
6 * version 2, as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#ifndef __DEBUG_CLK_GM20B_H
18#define __DEBUG_CLK_GM20B_H
19
20#ifdef CONFIG_DEBUG_FS
21int gm20b_clk_init_debugfs(struct gk20a *g);
22#else
23inline int gm20b_clk_init_debugfs(struct gk20a *g)
24{
25 return 0;
26}
27#endif
28
29#endif
diff --git a/drivers/gpu/nvgpu/os/linux/os_ops_gm20b.c b/drivers/gpu/nvgpu/os/linux/os_ops_gm20b.c
index 7db004eb..9024ce22 100644
--- a/drivers/gpu/nvgpu/os/linux/os_ops_gm20b.c
+++ b/drivers/gpu/nvgpu/os/linux/os_ops_gm20b.c
@@ -17,6 +17,7 @@
17#include "os_linux.h" 17#include "os_linux.h"
18 18
19#include "cde_gm20b.h" 19#include "cde_gm20b.h"
20#include "debug_clk_gm20b.h"
20 21
21static struct nvgpu_os_linux_ops gm20b_os_linux_ops = { 22static struct nvgpu_os_linux_ops gm20b_os_linux_ops = {
22#ifdef CONFIG_NVGPU_SUPPORT_CDE 23#ifdef CONFIG_NVGPU_SUPPORT_CDE
@@ -24,6 +25,9 @@ static struct nvgpu_os_linux_ops gm20b_os_linux_ops = {
24 .get_program_numbers = gm20b_cde_get_program_numbers, 25 .get_program_numbers = gm20b_cde_get_program_numbers,
25 }, 26 },
26#endif 27#endif
28 .clk = {
29 .init_debugfs = gm20b_clk_init_debugfs,
30 },
27}; 31};
28 32
29void nvgpu_gm20b_init_os_ops(struct nvgpu_os_linux *l) 33void nvgpu_gm20b_init_os_ops(struct nvgpu_os_linux *l)
@@ -31,4 +35,5 @@ void nvgpu_gm20b_init_os_ops(struct nvgpu_os_linux *l)
31#ifdef CONFIG_NVGPU_SUPPORT_CDE 35#ifdef CONFIG_NVGPU_SUPPORT_CDE
32 l->ops.cde = gm20b_os_linux_ops.cde; 36 l->ops.cde = gm20b_os_linux_ops.cde;
33#endif 37#endif
38 l->ops.clk = gm20b_os_linux_ops.clk;
34} 39}