Files
linux-nvgpu/drivers/gpu/nvgpu/os/linux/debug_pmgr.c
Jon Hunter 261d4bed13 gpu: nvgpu: Enable -Wmissing-prototypes
The compiler option -Wmissing-prototypes is being enabled globally in
the upstream Linux kernel and this causes build failures for nvgpu. The
build failures occur because either the driver is missing an include
file which has the prototype or because the function is not declared
statically when it should be (ie. there are no external users).

Fix the various build failures and enable -Wmissing-prototypes to
prevent any new instances from occurring.

Bug 4404965

Change-Id: I551922836e37b0c94c158232d6277f4053e9d2d3
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/3027483
(cherry picked from commit e8cbf90db2d0db7277db9e3eec9fb88d69c7fcc7)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/3035518
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-12-15 14:09:44 -08:00

93 lines
2.0 KiB
C

// SPDX-License-Identifier: GPL-2.0-only
// SPDX-FileCopyrightText: Copyright (c) 2018-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#include <linux/debugfs.h>
#include <nvgpu/pmu/pmgr.h>
#include "debug_pmgr.h"
#include "os_linux.h"
static int pmgr_pwr_devices_get_power_u64(void *data, u64 *p)
{
struct gk20a *g = (struct gk20a *)data;
int err;
u32 val;
err = pmgr_pwr_devices_get_power(g, &val);
*p = val;
return err;
}
static int pmgr_pwr_devices_get_current_u64(void *data, u64 *p)
{
struct gk20a *g = (struct gk20a *)data;
int err;
u32 val;
err = pmgr_pwr_devices_get_current(g, &val);
*p = val;
return err;
}
static int pmgr_pwr_devices_get_voltage_u64(void *data, u64 *p)
{
struct gk20a *g = (struct gk20a *)data;
int err;
u32 val;
err = pmgr_pwr_devices_get_voltage(g, &val);
*p = val;
return err;
}
DEFINE_SIMPLE_ATTRIBUTE(
pmgr_power_ctrl_fops, pmgr_pwr_devices_get_power_u64, NULL, "%llu\n");
DEFINE_SIMPLE_ATTRIBUTE(
pmgr_current_ctrl_fops, pmgr_pwr_devices_get_current_u64, NULL, "%llu\n");
DEFINE_SIMPLE_ATTRIBUTE(
pmgr_voltage_ctrl_fops, pmgr_pwr_devices_get_voltage_u64, NULL, "%llu\n");
static void pmgr_debugfs_init(struct gk20a *g)
{
struct nvgpu_os_linux *l = nvgpu_os_linux_from_gk20a(g);
struct dentry *dbgentry;
dbgentry = debugfs_create_file(
"power", S_IRUGO, l->debugfs, g, &pmgr_power_ctrl_fops);
if (!dbgentry)
nvgpu_err(g, "debugfs entry create failed for power");
dbgentry = debugfs_create_file(
"current", S_IRUGO, l->debugfs, g, &pmgr_current_ctrl_fops);
if (!dbgentry)
nvgpu_err(g, "debugfs entry create failed for current");
dbgentry = debugfs_create_file(
"voltage", S_IRUGO, l->debugfs, g, &pmgr_voltage_ctrl_fops);
if (!dbgentry)
nvgpu_err(g, "debugfs entry create failed for voltage");
}
int nvgpu_pmgr_init_debugfs_linux(struct nvgpu_os_linux *l)
{
struct gk20a *g = &l->g;
int ret = 0;
if (!nvgpu_is_enabled(g, NVGPU_PMU_PSTATE))
return ret;
if (!g->ops.clk.support_pmgr_domain)
return ret;
pmgr_debugfs_init(g);
return ret;
}