osdrv: add missing patch.

-512cf1, (sys):Fix sys flush cache op .

Change-Id: Ibdf95050f43b2006e7fd94467f1351763bc6e723
This commit is contained in:
sophgo-forum-service
2024-06-06 19:22:03 +08:00
committed by carbon
parent b94e342d8a
commit b8a32e0560

View File

@ -375,11 +375,7 @@ static int32_t sys_ion_alloc_user(struct cvi_sys_device *ndev, unsigned long arg
int32_t sys_cache_invalidate(uint64_t addr_p, void *addr_v, uint32_t u32Len)
{
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0)) && defined(__riscv)
arch_sync_dma_for_device(addr_p, u32Len, DMA_FROM_DEVICE);
#else
__dma_map_area(addr_v, u32Len, DMA_FROM_DEVICE);
#endif
/* */
smp_mb();
@ -389,11 +385,7 @@ EXPORT_SYMBOL_GPL(sys_cache_invalidate);
int32_t sys_cache_flush(uint64_t addr_p, void *addr_v, uint32_t u32Len)
{
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0)) && defined(__riscv)
arch_sync_dma_for_device(addr_p, u32Len, DMA_TO_DEVICE);
#else
__dma_map_area(addr_v, u32Len, DMA_TO_DEVICE);
#endif
/* */
smp_mb();
@ -412,17 +404,11 @@ static int32_t sys_cache_op_userv(unsigned long arg, enum enum_cache_op op_code)
return ret;
}
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0)) && defined(__riscv)
if (op_code == enum_cache_op_invalid)
arch_sync_dma_for_device(ioctl_arg.addr_p, ioctl_arg.size, DMA_FROM_DEVICE);
else if (op_code == enum_cache_op_flush)
arch_sync_dma_for_device(ioctl_arg.addr_p, ioctl_arg.size, DMA_TO_DEVICE);
#else
if (op_code == enum_cache_op_invalid)
__dma_map_area(ioctl_arg.addr_v, ioctl_arg.size, DMA_FROM_DEVICE);
else if (op_code == enum_cache_op_flush)
__dma_map_area(ioctl_arg.addr_v, ioctl_arg.size, DMA_TO_DEVICE);
#endif
/* */
smp_mb();
return 0;