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>
This commit is contained in:
Puneet Saxena
2022-09-02 19:48:28 +05:30
committed by Laxman Dewangan
parent 4cf8c80669
commit 8ceb954814
3 changed files with 32 additions and 1 deletions

View File

@@ -62,12 +62,21 @@ void nvmap_clean_cache(struct page **pages, int numpages)
void inner_cache_maint(unsigned int op, void *vaddr, size_t size)
{
#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 0, 0)
if (op == NVMAP_CACHE_OP_WB_INV)
dcache_clean_inval_poc((unsigned long)vaddr, (unsigned long)vaddr + size);
else if (op == NVMAP_CACHE_OP_INV)
dcache_inval_poc((unsigned long)vaddr, (unsigned long)vaddr + size);
else
dcache_clean_poc((unsigned long)vaddr, (unsigned long)vaddr + size);
#else
if (op == NVMAP_CACHE_OP_WB_INV)
__dma_flush_area(vaddr, size);
else if (op == NVMAP_CACHE_OP_INV)
__dma_map_area(vaddr, size, DMA_FROM_DEVICE);
else
__dma_map_area(vaddr, size, DMA_TO_DEVICE);
#endif
}
static void heap_page_cache_maint(
@@ -149,7 +158,11 @@ int nvmap_cache_maint_phys_range(unsigned int op, phys_addr_t pstart,
phys_addr_t next = (loop + PAGE_SIZE) & PAGE_MASK;
void *base;
next = min(next, pend);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 0, 0)
io_addr = ioremap_prot(loop, PAGE_SIZE, (unsigned long)PAGE_KERNEL);
#else
io_addr = __ioremap(loop, PAGE_SIZE, PG_PROT_KERNEL);
#endif
if (io_addr == NULL)
return -ENOMEM;
base = (__force void *)io_addr + (loop & ~PAGE_MASK);