mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 09:11:26 +03:00
nvmap: Copy drivers and headers from kernel/nvidia
Copy the driver and header sources of the nvmap to kernel/nvidia-oot from kernel/nvidia as part of removing the dependency of kernel/nvidia for OOT drivers. The latest (few) git history of the files copied are b7a355916 video: tegra: nvmap: Fix type casting issue 2128c5433 video: tegra: nvmap: Fix type casting issues 0cd082559 video: tegra: nvmap: Change peer vm id data type 4bd7ece67 tegra: nvmap: mark ivm carveout pages occupied e86f3630a video: tegra: nvmap: Fix type casting issue c43a23e58 video: tegra: nvmap: Fix type casting issue ca1dda22e video: tegra: nvmap: Fix type casting issue 1f567abfe video: tegra: nvmap: Fix wrap up condition 29db4d31c video: tegra: nvmap: Remove unnecessary debugfs fe72f1413 video: tegra: nvmap: Remove get_drv_data() call 3b0fc79e7 video: tegra: nvmap: Fix coverity defect 3cc0ce41b video: tegra: nvmap: Fix coverity defect 6da39e966 video: tegra: nvmap: Fix WARN_ON condition a16351ff1 video: tegra: nvmap: Remove dead code 9993f2d2d video: tegra: nvmap: Update print level 6066a2077 video: tegra: nvmap: Remove nvmap_debug_lru_allocations_show 3cdf2b7ba video: tegra: nvmap: Add kernel version check 716ded4fc video: tegra: nvmap: Initialize the return value 9b6c1b4ab video: tegra: nvmap: Correct debugfs code 33e70118b video: tegra: nvmap: Fix Cert-C error handling bug 7b960ed79 video: tegra: nvmap: Fix Cert-C error handling bug 945dc1471 video: tegra: nvmap: Fix Cert-C error handling bug 31e572de2 video: tegra: nvmap: Fix Cert-C error handling bug 1f25cbf68 video: tegra: nvmap: Fix Cert-C error handling bug fa5428107 video: tegra: nvmap: Remove nvmap_handle_get_from_fd df73f2208 video: tegra: nvmap: Protect kmap/kunmap code 9842e7c6a video: tegra: nvmap: Remove t19x dma_buf map/unmap 06dff1a8d video: tegra: nvmap: Remove unnecessary export symbols 6f097f86b video: tegra: nvmap: Fix Cert-C error handling bug f14171608 video: tegra: nvmap: load nvmap for T23x compatible platforms 266812814 video: tegra: nvmap: Get rid of NVMAP_CONFIG_KSTABLE_KERNEL 1b38c0887 nvmap: Don't use NV_BUILD_KERNEL_OPTIONS 0ab8dc032 video: tegra: nvmap: Reintroduce NVMAP_CONFIG_VPR_RESIZE cc8db9797 driver: platform: tegra: Separate out vpr code 28955d95c video/tegra: nvmap: Enable build as OOT module 876d1fbb8 video: tegra: nvmap: Remove IS_ENABLED check 5ea30867a nvmap: Add support to build as module from OOT kernel a71ad020e video: tegra: nvmap: Protect tegra_vpr args under config e70061cc1 video: tegra: nvmap: Do not export cvnas_dev d2a26ff36 video: tegra: nvmap: Include missing header 692e4f682 video: tegra: nvmap: Update page coloring algo 2b9dbb911 video: tegra: nvmap: Check for return value de8de12b6 video: tegra: nvmap: Enable legacy init support 65d478158 video: tegra: nvmap: Remove dependency of cvnas 38bdd6f05 video: tegra: nvmap: Make nvmap as loadable module 9668e410b video: tegra: nvmap: Enable handle as ID 11c6cbd23 tegra: nvmap: Fix build for Linux v5.18 fbd95c3ab linux: nvmap: change ivm_handle to u32 eb1e2c302 video: tegra: nvmap: Fix NVSCIIPC support 022689b29 tegra: nvmap: return error if handle as ID enabled but id is fd 19e5106ed video: tegra: nvmap: Don't treat ivm as reserved mem carveouts Bug 4038415 Change-Id: I7108aec3b8532fe79c9423c2835744b1213719e8 Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
This commit is contained in:
113
include/linux/nvmap.h
Normal file
113
include/linux/nvmap.h
Normal file
@@ -0,0 +1,113 @@
|
||||
/*
|
||||
* include/linux/nvmap.h
|
||||
*
|
||||
* structure declarations for nvmem and nvmap user-space ioctls
|
||||
*
|
||||
* Copyright (c) 2009-2022, 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.
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_NVMAP_H
|
||||
#define _LINUX_NVMAP_H
|
||||
|
||||
#include <linux/rbtree.h>
|
||||
#include <linux/file.h>
|
||||
#include <linux/dma-buf.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/version.h>
|
||||
#include <uapi/linux/nvmap.h>
|
||||
|
||||
#define NVMAP_HEAP_IOVMM (1ul<<30)
|
||||
|
||||
/* common carveout heaps */
|
||||
#define NVMAP_HEAP_CARVEOUT_VPR (1ul<<28)
|
||||
#define NVMAP_HEAP_CARVEOUT_TSEC (1ul<<27)
|
||||
#define NVMAP_HEAP_CARVEOUT_VIDMEM (1ul<<26)
|
||||
#define NVMAP_HEAP_CARVEOUT_FSI (1ul<<2)
|
||||
#define NVMAP_HEAP_CARVEOUT_IVM (1ul<<1)
|
||||
#define NVMAP_HEAP_CARVEOUT_GENERIC (1ul<<0)
|
||||
|
||||
#define NVMAP_HEAP_CARVEOUT_MASK (NVMAP_HEAP_IOVMM - 1)
|
||||
|
||||
/* allocation flags */
|
||||
#define NVMAP_HANDLE_UNCACHEABLE (0x0ul << 0)
|
||||
#define NVMAP_HANDLE_WRITE_COMBINE (0x1ul << 0)
|
||||
#define NVMAP_HANDLE_INNER_CACHEABLE (0x2ul << 0)
|
||||
#define NVMAP_HANDLE_CACHEABLE (0x3ul << 0)
|
||||
#define NVMAP_HANDLE_CACHE_FLAG (0x3ul << 0)
|
||||
|
||||
#define NVMAP_HANDLE_SECURE (0x1ul << 2)
|
||||
#define NVMAP_HANDLE_KIND_SPECIFIED (0x1ul << 3)
|
||||
#define NVMAP_HANDLE_COMPR_SPECIFIED (0x1ul << 4)
|
||||
#define NVMAP_HANDLE_ZEROED_PAGES (0x1ul << 5)
|
||||
#define NVMAP_HANDLE_PHYS_CONTIG (0x1ul << 6)
|
||||
#define NVMAP_HANDLE_CACHE_SYNC (0x1ul << 7)
|
||||
#define NVMAP_HANDLE_CACHE_SYNC_AT_RESERVE (0x1ul << 8)
|
||||
#define NVMAP_HANDLE_RO (0x1ul << 9)
|
||||
|
||||
#ifdef NVMAP_CONFIG_PAGE_POOLS
|
||||
ulong nvmap_page_pool_get_unused_pages(void);
|
||||
#else
|
||||
static inline ulong nvmap_page_pool_get_unused_pages(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
|
||||
ulong nvmap_iovmm_get_used_pages(void);
|
||||
#endif
|
||||
|
||||
int nvmap_register_vidmem_carveout(struct device *dma_dev,
|
||||
phys_addr_t base, size_t size);
|
||||
|
||||
/*
|
||||
* A heap can be mapped to memory other than DRAM.
|
||||
* The HW, controls the memory, can be power gated/ungated
|
||||
* based upon the clients using the memory.
|
||||
* if no client/alloc happens from the memory, the HW needs
|
||||
* to be power gated. Similarly it should power ungated if
|
||||
* alloc happens from the memory.
|
||||
* int (*busy)(void) - trigger runtime power ungate
|
||||
* int (*idle)(void) - trigger runtime power gate
|
||||
*/
|
||||
struct nvmap_pm_ops {
|
||||
int (*busy)(void);
|
||||
int (*idle)(void);
|
||||
};
|
||||
|
||||
struct nvmap_platform_carveout {
|
||||
const char *name;
|
||||
unsigned int usage_mask;
|
||||
phys_addr_t base;
|
||||
size_t size;
|
||||
struct device *cma_dev;
|
||||
bool resize;
|
||||
struct device *dma_dev;
|
||||
struct device dev;
|
||||
struct dma_declare_info *dma_info;
|
||||
bool is_ivm;
|
||||
unsigned int peer;
|
||||
unsigned int vmid;
|
||||
int can_alloc;
|
||||
bool enable_static_dma_map;
|
||||
bool disable_dynamic_dma_map;
|
||||
bool no_cpu_access; /* carveout can't be accessed from cpu at all */
|
||||
bool init_done; /* FIXME: remove once all caveouts use reserved-memory */
|
||||
struct nvmap_pm_ops pm_ops;
|
||||
};
|
||||
|
||||
struct nvmap_platform_data {
|
||||
const struct nvmap_platform_carveout *carveouts;
|
||||
unsigned int nr_carveouts;
|
||||
};
|
||||
|
||||
#endif /* _LINUX_NVMAP_H */
|
||||
Reference in New Issue
Block a user