From 0406900ca944305f9713905f4d7363fc2d9cbbea Mon Sep 17 00:00:00 2001 From: Nitin Kumbhar Date: Sun, 12 Aug 2018 22:59:24 +0530 Subject: 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 Reviewed-on: https://git-master.nvidia.com/r/1797905 Reviewed-by: svc-misra-checker GVS: Gerrit_Virtual_Submit Reviewed-by: Vijayakumar Subbu Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/gm20b/clk_gm20b.c | 11 ----------- drivers/gpu/nvgpu/gm20b/clk_gm20b.h | 3 --- drivers/gpu/nvgpu/gm20b/hal_gm20b.c | 3 --- drivers/gpu/nvgpu/os/linux/debug_clk_gm20b.h | 29 ++++++++++++++++++++++++++++ drivers/gpu/nvgpu/os/linux/os_ops_gm20b.c | 5 +++++ 5 files changed, 34 insertions(+), 17 deletions(-) create mode 100644 drivers/gpu/nvgpu/os/linux/debug_clk_gm20b.h (limited to 'drivers') 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) err = set_pll_freq(g, 1); } nvgpu_mutex_release(&clk->clk_mutex); - if (err) { - return err; - } - - if (!clk->debugfs_set && g->ops.clk.init_debugfs) { - err = g->ops.clk.init_debugfs(g); - if (err) { - return err; - } - clk->debugfs_set = true; - } return err; } 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, long gm20b_round_rate(struct clk_gk20a *clk, unsigned long rate, unsigned long *parent_rate); struct pll_parms *gm20b_get_gpc_pll_parms(void); -#ifdef CONFIG_DEBUG_FS -int gm20b_clk_init_debugfs(struct gk20a *g); -#endif int gm20b_clk_pll_reg_write(struct gk20a *g, u32 reg, u32 val); int 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 = { .clk = { .init_clk_support = gm20b_init_clk_support, .suspend_clk_support = gm20b_suspend_clk_support, -#ifdef CONFIG_DEBUG_FS - .init_debugfs = gm20b_clk_init_debugfs, -#endif .get_voltage = gm20b_clk_get_voltage, .get_gpcclk_clock_counter = gm20b_clk_get_gpcclk_clock_counter, .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 @@ +/* + * Copyright (c) 2018, NVIDIA Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef __DEBUG_CLK_GM20B_H +#define __DEBUG_CLK_GM20B_H + +#ifdef CONFIG_DEBUG_FS +int gm20b_clk_init_debugfs(struct gk20a *g); +#else +inline int gm20b_clk_init_debugfs(struct gk20a *g) +{ + return 0; +} +#endif + +#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 @@ #include "os_linux.h" #include "cde_gm20b.h" +#include "debug_clk_gm20b.h" static struct nvgpu_os_linux_ops gm20b_os_linux_ops = { #ifdef CONFIG_NVGPU_SUPPORT_CDE @@ -24,6 +25,9 @@ static struct nvgpu_os_linux_ops gm20b_os_linux_ops = { .get_program_numbers = gm20b_cde_get_program_numbers, }, #endif + .clk = { + .init_debugfs = gm20b_clk_init_debugfs, + }, }; void 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) #ifdef CONFIG_NVGPU_SUPPORT_CDE l->ops.cde = gm20b_os_linux_ops.cde; #endif + l->ops.clk = gm20b_os_linux_ops.clk; } -- cgit v1.2.2