mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-23 01:50:07 +03:00
This patch does the following. 1. Remove unused functions from volt_pmu.c. 2. Append public functions with nvgpu. 3. Remove GP106 functions and rename TU104 to generic functions. 4. Rename volt struct from gpu_ops. 5. Remove the unused volt.h header file. 6. Make local functions as static and put in order. 7. Remove unused inclusion on header files. 8. After 4, generic functions can be called directly instead of g->ops. Jira NVGPU-1956 Change-Id: Icaea0ca817d37cccfc09241baa2f047ec2688169 Signed-off-by: Abdul Salam <absalam@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/2076535 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
73 lines
1.9 KiB
C
73 lines
1.9 KiB
C
/*
|
|
* Copyright (c) 2019, 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 <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#include <linux/debugfs.h>
|
|
#include "os_linux.h"
|
|
|
|
#include <nvgpu/pmu/volt.h>
|
|
|
|
static int get_curr_voltage(void *data, u64 *val)
|
|
{
|
|
struct gk20a *g = (struct gk20a *)data;
|
|
u32 readval;
|
|
int err;
|
|
|
|
err = nvgpu_volt_get_voltage(g, CTRL_VOLT_DOMAIN_LOGIC, &readval);
|
|
if (!err)
|
|
*val = readval;
|
|
|
|
return err;
|
|
}
|
|
DEFINE_SIMPLE_ATTRIBUTE(curr_volt_ctrl_fops, get_curr_voltage, NULL, "%llu\n");
|
|
|
|
static int get_min_voltage(void *data, u64 *val)
|
|
{
|
|
struct gk20a *g = (struct gk20a *)data;
|
|
u32 readval;
|
|
int err;
|
|
|
|
err = nvgpu_volt_get_vmin_ps35(g, &readval);
|
|
if (!err)
|
|
*val = readval;
|
|
|
|
return err;
|
|
}
|
|
DEFINE_SIMPLE_ATTRIBUTE(min_volt_ctrl_fops, get_min_voltage, NULL, "%llu\n");
|
|
|
|
int nvgpu_volt_init_debugfs(struct gk20a *g)
|
|
{
|
|
struct nvgpu_os_linux *l = nvgpu_os_linux_from_gk20a(g);
|
|
struct dentry *dbgentry, *volt_root;
|
|
|
|
volt_root = debugfs_create_dir("volt", l->debugfs);
|
|
|
|
dbgentry = debugfs_create_file(
|
|
"current_voltage", S_IRUGO, volt_root, g, &curr_volt_ctrl_fops);
|
|
if (!dbgentry) {
|
|
pr_err("%s: Failed to make debugfs node\n", __func__);
|
|
return -ENOMEM;
|
|
}
|
|
|
|
dbgentry = debugfs_create_file("minimum_voltage",
|
|
S_IRUGO, volt_root, g, &min_volt_ctrl_fops);
|
|
if (!dbgentry) {
|
|
pr_err("%s: Failed to make debugfs node\n", __func__);
|
|
return -ENOMEM;
|
|
}
|
|
|
|
return 0;
|
|
}
|