// SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2021-2023 NVIDIA CORPORATION & AFFILIATES. 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 . */ #include #include #include #define LOG_BUF_SIZE 160 static void tegra_hwpm_print(const char *func, int line, int type, const char *log) { switch (type) { case TEGRA_HWPM_ERROR: pr_err(TEGRA_SOC_HWPM_MODULE_NAME ": %s: %d: ERROR: %s\n", func, line, log); break; case TEGRA_HWPM_DEBUG: pr_info(TEGRA_SOC_HWPM_MODULE_NAME ": %s: %d: DEBUG: %s\n", func, line, log); break; } } void tegra_hwpm_err_impl(struct tegra_soc_hwpm *hwpm, const char *func, int line, const char *fmt, ...) { char log[LOG_BUF_SIZE]; va_list args; va_start(args, fmt); (void) vsnprintf(log, LOG_BUF_SIZE, fmt, args); va_end(args); tegra_hwpm_print(func, line, TEGRA_HWPM_ERROR, log); } void tegra_hwpm_dbg_impl(struct tegra_soc_hwpm *hwpm, u32 dbg_mask, const char *func, int line, const char *fmt, ...) { char log[LOG_BUF_SIZE]; va_list args; if ((hwpm == NULL) || ((dbg_mask & hwpm->dbg_mask) == 0)) { return; } va_start(args, fmt); (void) vsnprintf(log, LOG_BUF_SIZE, fmt, args); va_end(args); tegra_hwpm_print(func, line, TEGRA_HWPM_DEBUG, log); }