mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 09:11:26 +03:00
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:
committed by
Laxman Dewangan
parent
4cf8c80669
commit
8ceb954814
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user