mirror of
git://nv-tegra.nvidia.com/linux-hwpm.git
synced 2025-12-22 17:30:40 +03:00
Modify OS agnostic files in common, hal and include folder to use MIT license. This will allow the files to be shared between different OSes. Modify OS specific files in os/linux and uapi folders to add SPDX identifier for GPLv2. Jira THWPM-69 Change-Id: I4fef142354a46fc23b67616204ccf0712a99caec Signed-off-by: Vedashree Vidwans <vvidwans@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-hwpm/+/2797453 Reviewed-by: Seema Khowala <seemaj@nvidia.com> GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
79 lines
2.5 KiB
C
79 lines
2.5 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copyright (c) 2022-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 <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifndef TEGRA_HWPM_OS_LINUX_MEM_MGMT_UTILS_H
|
|
#define TEGRA_HWPM_OS_LINUX_MEM_MGMT_UTILS_H
|
|
|
|
#include <linux/types.h>
|
|
#include <linux/version.h>
|
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
|
|
#include <linux/iosys-map.h>
|
|
#else
|
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)
|
|
#include <linux/dma-buf-map.h>
|
|
#endif
|
|
#endif
|
|
|
|
/* This macro is copy of TEGRA_SOC_HWPM_MEM_BYTES_INVALID */
|
|
#define TEGRA_HWPM_MEM_BYTES_INVALID 0xffffffff
|
|
|
|
struct tegra_soc_hwpm;
|
|
struct tegra_soc_hwpm_alloc_pma_stream;
|
|
struct tegra_soc_hwpm_update_get_put;
|
|
struct sg_table;
|
|
struct dma_buf;
|
|
struct dma_buf_attachment;
|
|
struct tegra_soc_hwpm_update_get_put;
|
|
|
|
struct tegra_hwpm_mem_mgmt {
|
|
struct sg_table *stream_sgt;
|
|
struct sg_table *mem_bytes_sgt;
|
|
struct dma_buf *stream_dma_buf;
|
|
struct dma_buf_attachment *stream_attach;
|
|
u64 stream_buf_size;
|
|
u64 stream_buf_va;
|
|
u64 mem_bytes_buf_va;
|
|
struct dma_buf *mem_bytes_dma_buf;
|
|
struct dma_buf_attachment *mem_bytes_attach;
|
|
void *mem_bytes_kernel;
|
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
|
|
struct iosys_map mem_bytes_map;
|
|
#else
|
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)
|
|
struct dma_buf_map mem_bytes_map;
|
|
#endif
|
|
#endif
|
|
};
|
|
|
|
struct tegra_hwpm_allowlist_map {
|
|
u64 full_alist_size;
|
|
u64 num_pages;
|
|
struct page **pages;
|
|
void *full_alist_map;
|
|
};
|
|
|
|
int tegra_hwpm_map_stream_buffer(struct tegra_soc_hwpm *hwpm,
|
|
struct tegra_soc_hwpm_alloc_pma_stream *alloc_pma_stream);
|
|
int tegra_hwpm_clear_mem_pipeline(struct tegra_soc_hwpm *hwpm);
|
|
int tegra_hwpm_update_mem_bytes(struct tegra_soc_hwpm *hwpm,
|
|
struct tegra_soc_hwpm_update_get_put *update_get_put);
|
|
int tegra_hwpm_map_update_allowlist(struct tegra_soc_hwpm *hwpm,
|
|
void *ioctl_struct);
|
|
void tegra_hwpm_release_alist_map(struct tegra_soc_hwpm *hwpm);
|
|
void tegra_hwpm_release_mem_mgmt(struct tegra_soc_hwpm *hwpm);
|
|
|
|
#endif /* TEGRA_HWPM_OS_LINUX_MEM_MGMT_UTILS_H */
|