From cbc2351e8acf7ed38f6d965e5ea21620e45eda30 Mon Sep 17 00:00:00 2001 From: Dylan Yip Date: Tue, 9 Feb 2021 10:05:41 -0800 Subject: [PATCH 20/23] Fix ioremap_nocache() deprecation in kernel 5.6 As of commit 4bdc0d676a643140 ("remove ioremap_nocache and devm_ioremap_nocache") from kernel 5.6, ioremap_nocache has been removed because ioremap is already non-cached by default. So replace all calls with ioremap. Signed-off-by: Dylan Yip --- linux/mali_memory_cow.c | 4 ++++ linux/mali_osk_low_level_mem.c | 4 ++++ platform/arm/arm.c | 12 ++++++++++++ 3 files changed, 20 insertions(+) diff --git a/linux/mali_memory_cow.c b/linux/mali_memory_cow.c index 1dae1d6..6fadd42 100644 --- a/linux/mali_memory_cow.c +++ b/linux/mali_memory_cow.c @@ -693,7 +693,11 @@ void _mali_mem_cow_copy_page(mali_page_node *src_node, mali_page_node *dst_node) /* * use ioremap to map src for BLOCK memory */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) + src = ioremap(_mali_page_node_get_dma_addr(src_node), _MALI_OSK_MALI_PAGE_SIZE); +#else src = ioremap_nocache(_mali_page_node_get_dma_addr(src_node), _MALI_OSK_MALI_PAGE_SIZE); +#endif memcpy(dst, src , _MALI_OSK_MALI_PAGE_SIZE); iounmap(src); } diff --git a/linux/mali_osk_low_level_mem.c b/linux/mali_osk_low_level_mem.c index 84f93d9..5a0a725 100644 --- a/linux/mali_osk_low_level_mem.c +++ b/linux/mali_osk_low_level_mem.c @@ -33,7 +33,11 @@ void _mali_osk_write_mem_barrier(void) mali_io_address _mali_osk_mem_mapioregion(uintptr_t phys, u32 size, const char *description) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) + return (mali_io_address)ioremap(phys, size); +#else return (mali_io_address)ioremap_nocache(phys, size); +#endif } void _mali_osk_mem_unmapioregion(uintptr_t phys, u32 size, mali_io_address virt) diff --git a/platform/arm/arm.c b/platform/arm/arm.c index b2fb746..e468263 100644 --- a/platform/arm/arm.c +++ b/platform/arm/arm.c @@ -98,7 +98,11 @@ static int mali_secure_mode_init_juno(void) MALI_DEBUG_ASSERT(NULL == secure_mode_mapped_addr); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) + secure_mode_mapped_addr = ioremap(phys_addr_page, map_size); +#else secure_mode_mapped_addr = ioremap_nocache(phys_addr_page, map_size); +#endif if (NULL != secure_mode_mapped_addr) { return mali_gpu_reset_and_secure_mode_disable_juno(); } @@ -588,7 +592,11 @@ static u32 mali_read_phys(u32 phys_addr) u32 phys_offset = phys_addr & 0x00001FFF; u32 map_size = phys_offset + sizeof(u32); u32 ret = 0xDEADBEEF; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) + void *mem_mapped = ioremap(phys_addr_page, map_size); +#else void *mem_mapped = ioremap_nocache(phys_addr_page, map_size); +#endif if (NULL != mem_mapped) { ret = (u32)ioread32(((u8 *)mem_mapped) + phys_offset); iounmap(mem_mapped); @@ -604,7 +612,11 @@ static void mali_write_phys(u32 phys_addr, u32 value) u32 phys_addr_page = phys_addr & 0xFFFFE000; u32 phys_offset = phys_addr & 0x00001FFF; u32 map_size = phys_offset + sizeof(u32); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) + void *mem_mapped = ioremap(phys_addr_page, map_size); +#else void *mem_mapped = ioremap_nocache(phys_addr_page, map_size); +#endif if (NULL != mem_mapped) { iowrite32(value, ((u8 *)mem_mapped) + phys_offset); iounmap(mem_mapped); -- 2.17.1