From b63852bfdedd763c895282a2c0c62ba0408e48c3 Mon Sep 17 00:00:00 2001 From: Yu Qiaowei Date: Wed, 16 Mar 2022 20:37:34 +0800 Subject: [PATCH] video: rockchip: rga3: adapt to kernel 5.4 Signed-off-by: Yu Qiaowei Change-Id: I848573243aaa5a2779575df2ee9dcf7845f2c57b --- drivers/video/rockchip/rga3/include/rga_drv.h | 7 ++++++- drivers/video/rockchip/rga3/rga_dma_buf.c | 11 ++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/drivers/video/rockchip/rga3/include/rga_drv.h b/drivers/video/rockchip/rga3/include/rga_drv.h index bfa9cacdf5b5..7b5234553ca7 100644 --- a/drivers/video/rockchip/rga3/include/rga_drv.h +++ b/drivers/video/rockchip/rga3/include/rga_drv.h @@ -13,7 +13,6 @@ #include #include #include -#include #include #include #include @@ -50,6 +49,12 @@ #include #include +#ifdef CONFIG_DMABUF_CACHE +#include +#else +#include +#endif + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0)) #include #endif diff --git a/drivers/video/rockchip/rga3/rga_dma_buf.c b/drivers/video/rockchip/rga3/rga_dma_buf.c index 7b36b70b35da..2a31ed97250c 100644 --- a/drivers/video/rockchip/rga3/rga_dma_buf.c +++ b/drivers/video/rockchip/rga3/rga_dma_buf.c @@ -12,6 +12,11 @@ #include "rga_common.h" #include "rga_job.h" +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 10, 0) && \ + LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0) +#include +#endif + /** * rga_dma_info_to_prot - Translate DMA API directions and attributes to IOMMU API * page flags. @@ -358,7 +363,7 @@ static dma_addr_t rga_iommu_dma_alloc_iova(struct iommu_domain *domain, struct rga_iommu_dma_cookie *cookie = domain->iova_cookie; struct iova_domain *iovad = &cookie->iovad; unsigned long shift, iova_len, iova = 0; -#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 10, 0)) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 4, 0)) dma_addr_t limit; #endif @@ -383,7 +388,7 @@ static dma_addr_t rga_iommu_dma_alloc_iova(struct iommu_domain *domain, if (domain->geometry.force_aperture) dma_limit = min(dma_limit, (u64)domain->geometry.aperture_end); -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0)) iova = alloc_iova_fast(iovad, iova_len, dma_limit >> shift, true); #else limit = min_t(dma_addr_t, dma_limit >> shift, iovad->end_pfn); @@ -416,7 +421,7 @@ static inline size_t rga_iommu_map_sg(struct iommu_domain *domain, static inline bool rga_dev_is_dma_coherent(struct device *dev) { -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0)) return dev_is_dma_coherent(dev); #else return dev->archdata.dma_coherent;