Yash Bhatt
b9d188d974
video: tegra: nvmap: Deprecate cachelistsync functions
...
Remove cachelistsync functions from nvmap as they were only relevant for
older chips.
Bug 4479027
Change-Id: I19a1091ed2aafb5c1c74bf85f3f13d92df93bb34
Signed-off-by: Yash Bhatt <ybhatt@nvidia.com >
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3108894
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com >
Reviewed-by: Sachin Nikam <snikam@nvidia.com >
Reviewed-by: Ashish Mhetre <amhetre@nvidia.com >
2024-04-04 16:01:35 -07:00
Yash Bhatt
25bc2a3b96
tegra: nvmap: Clean-up OOT NvMap
...
Remove macro-protected dead code. NVMAP_LOADABLE_MODULE enables NvMap as
an OOT module, while NVMAP_UPSTREAM_KERNEL is a config for kstable/OOT
kernel. For Kernel 5.10+ both are always defined, So the related macro
protected code can be safely removed.
Bug 4479135
Change-Id: I792f1cb2c54fd21bcf0e73ffc52e46e4efd47862
Signed-off-by: Yash Bhatt <ybhatt@nvidia.com >
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3079420
Reviewed-by: Ashish Mhetre <amhetre@nvidia.com >
Reviewed-by: Sachin Nikam <snikam@nvidia.com >
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com >
2024-02-20 05:31:05 -08:00
Yash Bhatt
37e4db0ddb
tegra: nvmap: Clean-up OOT NvMap
...
Remove macro protected deadcode which is not applicable now
Bug 4479135
Change-Id: Ibcf155e19b0a9eb5a2d06fa7486e93e1a51769e6
Signed-off-by: Yash Bhatt <ybhatt@nvidia.com >
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3077338
Reviewed-by: Ashish Mhetre <amhetre@nvidia.com >
Reviewed-by: Ketan Patil <ketanp@nvidia.com >
Reviewed-by: Sachin Nikam <snikam@nvidia.com >
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com >
2024-02-17 15:54:06 -08:00
Jon Hunter
069925e74b
video: tegra: nvmap: Make ioremap_prot depend on GENERIC_IOREMAP
...
The function ioremap_prot() has been exported by the Linux kernel since
v5.9. However, it is only available if GENERIC_IOREMAP is enabled. Since
Linux v6.0, when the ARM64 __ioremap() function was removed, was
GENERIC_IOREMAP enabled for ARM64 by default. Rather than depend on
kernel version for selecting if ioremap_prot is used, use ioremap_prot
if GENERIC_IOREMAP is enabled.
This is a better solution for working with 3rd party Linux kernels that
may backport upstream changes to the kernel and hence are not compatible
with these existing version checks.
Bug 4119327
Change-Id: I2f5f9a691c66c5fbd83d4aa51062c749d39dd447
Signed-off-by: Jon Hunter <jonathanh@nvidia.com >
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2982126
Reviewed-by: Ketan Patil <ketanp@nvidia.com >
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com >
2023-09-21 13:11:31 -07:00
Ketan Patil
edf9d114e1
video: tegra: nvmap: Don't perform repetitive ioremap
...
__ioremap function called during cache maint takes more time in case of
multiple processes compared to single process. This is impacting camera
tests when multiple cameras are used. For carveouts, nvmap performs page
by page ioremap and then cache maint on it. Optimize this with following
steps:
- During first cache_maint of the buffer, perform ioremap on entire
buffer and save the kernel V.A.
- Next time, when cache_maint is called on the same buffer, we will
reuse the saved kernel V.A.
Bug 3922175
Change-Id: Iecb372365409de1951bcc8e6f3d8e8e867bb2a80
Signed-off-by: Ketan Patil <ketanp@nvidia.com >
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2948759
Reviewed-by: Barton Xu (SW-TEGRA) <bartonx@nvidia.com >
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com >
Reviewed-by: Sachin Nikam <snikam@nvidia.com >
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com >
2023-08-07 05:01:37 -07:00
Laxman Dewangan
e8b7a5ca26
nvmap: Use SPDX license GPL 2.0 format
...
Use SPDX license GPL-V2.0 format and change Nvidia
copyright year to include 2023.
Bug 4078035
Change-Id: I4db6577ddb806690f6ec04f5eaf1364578102d14
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com >
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2890635
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com >
Reviewed-by: Ketan Patil <ketanp@nvidia.com >
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com >
2023-04-22 09:59:20 -07:00
Ketan Patil
6937db210f
video: tegra: nvmap: Add CBC carveout support
...
- Add CBC carveout suport in nvmap.
- Chunk size for CBC is 2MB, hence each bit from bitmap for CBC carveout
indicate 2MB physically contiguous chunk.
- In case of allocation from CBC, first try to allocate the entire chunk
in physically contiguous manner, if it's not possible then allocate in
chunks of 2MB. All page pointers to these chunks will be stored in
nvmap_handle struct.
- Modify all other operations like vmap, kmap, mmap as per the above
restrictions.
Bug 3956637
Change-Id: I7c304b0127c8fef028e135a4662ab3ad3dc1d1f6
Signed-off-by: Ketan Patil <ketanp@nvidia.com >
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2880662
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com >
Reviewed-by: Sachin Nikam <snikam@nvidia.com >
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2885806
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com >
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com >
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com >
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com >
Tested-by: Laxman Dewangan <ldewangan@nvidia.com >
2023-04-12 04:32:35 -07:00
Ketan Patil
9045984efb
nvmap: Remove use of __dma_flush_area
...
__dma_flush_area is defined in downstream, we need maintenance effort
when kernel version is upgraded. Instead, use arch_invalidate_pmem
function provided by the upstream.
Bug 3855165
Change-Id: Ie62935aba7f3c31e6e233816b3bff507197d3f86
Signed-off-by: Ketan Patil <ketanp@nvidia.com >
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2804844
Reviewed-by: svcacv <svcacv@nvidia.com >
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com >
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com >
Reviewed-by: Sachin Nikam <snikam@nvidia.com >
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com >
2023-04-11 05:54:22 +00:00
Puneet Saxena
a3201ec3fe
tegra: nvmap: add _dma_*area prototype
...
__dma_flush_area and __dma_map_area
function's protype is removed from "cacheflush.h"
header file. Since these functions are defined locally
in NvMap, define prototype in nvmap_priv.h, private header.
Bug 3767126
Change-Id: Ibf21712fe9738e4b3d7c286ac6acfea550d9d8d7
Signed-off-by: Puneet Saxena <puneets@nvidia.com >
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2779048
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com >
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com >
2023-04-11 05:54:22 +00:00
Puneet Saxena
a28927a2c2
tegra: nvmap: fix build for kernel 6.0
...
Fix build for kernel 6.0 onwards.
"register_shrinker" expects shrinker name,
hence pass the name string.
PAGE_KERNEL's Page Protection value needs to be set.
Bug 3767126
Change-Id: I71a54891999d0554eaccac6f37d0f1d9c2a65ace
Signed-off-by: Puneet Saxena <puneets@nvidia.com >
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2776872
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com >
Reviewed-by: Sachin Nikam <snikam@nvidia.com >
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com >
2023-04-11 05:54:22 +00:00
Puneet Saxena
8ceb954814
tegra: nvmap: replace _dma_* and __iomap
...
__dma_flush_area, __dma_map_area and __iomap
functions are no more supported from kernel version
6.0 onwards.
Replace them by equivalent exported function in K-6.0 and
onwards.
Bug 3767126
Change-Id: I2b8d81271ed3696ae3d9306a311fe74622c2b611
Signed-off-by: Puneet Saxena <puneets@nvidia.com >
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2770928
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com >
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com >
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com >
Reviewed-by: Sachin Nikam <snikam@nvidia.com >
Reviewed-by: Ketan Patil <ketanp@nvidia.com >
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com >
2023-04-11 05:54:22 +00:00
Laxman Dewangan
4cf8c80669
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 >
2023-04-11 05:47:21 +00:00