[Openpvrsgx-devgroup] [PATCH 2/2] pvrsrv: 1.14: osfunc: use dma-direct unconditionally

Anthoine Bourgeois anthoine.bourgeois at gmail.com
Thu Sep 8 17:01:34 CEST 2022


Signed-off-by: Anthoine Bourgeois <anthoine.bourgeois at gmail.com>
---
 .../services4/srvkm/env/linux/osfunc.c           | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/drivers/gpu/drm/pvrsgx/1.14.3699939/eurasia_km/services4/srvkm/env/linux/osfunc.c b/drivers/gpu/drm/pvrsgx/1.14.3699939/eurasia_km/services4/srvkm/env/linux/osfunc.c
index f58c63f0a0fb..55ed23ff7d57 100644
--- a/drivers/gpu/drm/pvrsgx/1.14.3699939/eurasia_km/services4/srvkm/env/linux/osfunc.c
+++ b/drivers/gpu/drm/pvrsgx/1.14.3699939/eurasia_km/services4/srvkm/env/linux/osfunc.c
@@ -4462,18 +4462,34 @@ static void pvr_dmac_clean_range(const void *pvStart, const void *pvEnd)
 
 static void pvr_flush_range(phys_addr_t pStart, phys_addr_t pEnd)
 {
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,0,0))
+	struct device *dev = PVRLDMGetDevice();
+        dma_sync_single_for_device(dev, pStart, pEnd - pStart, DMA_TO_DEVICE);
+	dma_sync_single_for_cpu(dev, pStart, pEnd - pStart, DMA_FROM_DEVICE);
+#else
 	arm_dma_ops.sync_single_for_device(NULL, pStart, pEnd - pStart, DMA_TO_DEVICE);
 	arm_dma_ops.sync_single_for_cpu(NULL, pStart, pEnd - pStart, DMA_FROM_DEVICE);
+#endif
 }
 
 static void pvr_clean_range(phys_addr_t pStart, phys_addr_t pEnd)
 {
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,0,0))
+	struct device *dev = PVRLDMGetDevice();
+        dma_sync_single_for_device(dev, pStart, pEnd - pStart, DMA_TO_DEVICE);
+#else
 	arm_dma_ops.sync_single_for_device(NULL, pStart, pEnd - pStart, DMA_TO_DEVICE);
+#endif
 }
 
 static void pvr_invalidate_range(phys_addr_t pStart, phys_addr_t pEnd)
 {
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,0,0))
+	struct device *dev = PVRLDMGetDevice();
+	dma_sync_single_for_cpu(dev, pStart, pEnd - pStart, DMA_FROM_DEVICE);
+#else
 	arm_dma_ops.sync_single_for_cpu(NULL, pStart, pEnd - pStart, DMA_FROM_DEVICE);
+#endif
 }
 
 #endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0) */
-- 
2.35.1



More information about the openpvrsgx-devgroup mailing list