From: Madhurkiran Harikrishnan <[email protected]>

Upgrade the Mali-400 kernel space driver to r9p0. Key features:
-Support linux kernel 4.19
-Added incremental features upgrade details for the DDk revision

Signed-off-by: Madhurkiran Harikrishnan <[email protected]>
Signed-off-by: Sai Hari Chandana Kalluri <[email protected]>
Signed-off-by: Manjukumar Matha <[email protected]>
---
 .../recipes-graphics/mali/kernel-module-mali.bb    |  11 +--
 ...place-__GFP_REPEAT-by-__GFP_RETRY_MAYFAIL.patch |  54 -----------
 ...al_sync-Rename-wait_queue_t-with-wait_que.patch | 108 ---------------------
 ..._swap_alloc.c-Rename-global_page_state-wi.patch |  48 ---------
 4 files changed, 4 insertions(+), 217 deletions(-)
 delete mode 100644 
meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0007-Replace-__GFP_REPEAT-by-__GFP_RETRY_MAYFAIL.patch
 delete mode 100644 
meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0008-mali_internal_sync-Rename-wait_queue_t-with-wait_que.patch
 delete mode 100644 
meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0009-mali_memory_swap_alloc.c-Rename-global_page_state-wi.patch

diff --git a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali.bb 
b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali.bb
index be9e719..c86fb2e 100644
--- a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali.bb
+++ b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali.bb
@@ -3,10 +3,10 @@ SECTION = "kernel/modules"
 
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = " \
-       
file://linux/license/gpl/mali_kernel_license.h;md5=436192a2c5cfd47df0ad1987dffc4ae6
 \
+       
file://linux/license/gpl/mali_kernel_license.h;md5=f5af2d61f4c1eb262cb6a557aaa1070a
 \
        "
 
-PV = "r8p0-01rel0"
+PV = "r9p0-01rel0"
 
 SRC_URI = " \
        
https://developer.arm.com/-/media/Files/downloads/mali-drivers/kernel/mali-utgard-gpu/DX910-SW-99002-${PV}.tgz
 \
@@ -16,9 +16,6 @@ SRC_URI = " \
        file://0004-staging-mali-r8p0-01rel0-Don-t-include-mali_read_phy.patch \
        file://0005-linux-mali_kernel_linux.c-Handle-clock-when-probed-a.patch \
        file://0006-arm.c-global-variable-dma_ops-is-removed-from-the-ke.patch \
-       file://0007-Replace-__GFP_REPEAT-by-__GFP_RETRY_MAYFAIL.patch \
-       file://0008-mali_internal_sync-Rename-wait_queue_t-with-wait_que.patch \
-       file://0009-mali_memory_swap_alloc.c-Rename-global_page_state-wi.patch \
        file://0010-common-mali_pm.c-Add-PM-runtime-barrier-after-removi.patch \
        file://0011-linux-mali_kernel_linux.c-Enable-disable-clock-for-r.patch\
        file://0012-linux-mali_memory_os_alloc-Remove-__GFP_COLD.patch\
@@ -26,8 +23,8 @@ SRC_URI = " \
        file://0014-linux-mali_-timer-Get-rid-of-init_timer.patch\
        file://0015-fix-driver-failed-to-check-map-error.patch \
        "
-SRC_URI[md5sum] = "8f04ae86957fd56197ad5a9d017b84ff"
-SRC_URI[sha256sum] = 
"bfd14fa3f75a71d4ba313534e651ca1c58dc354e882c0b39867e335882a06350"
+SRC_URI[md5sum] = "85ea110dd6675c70b7d01af87ec9633c"
+SRC_URI[sha256sum] = 
"7a67127341d17640c1fff5dad80258fb2a37c8a2121b81525fe2327e4532ce2b"
 
 inherit module
 
diff --git 
a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0007-Replace-__GFP_REPEAT-by-__GFP_RETRY_MAYFAIL.patch
 
b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0007-Replace-__GFP_REPEAT-by-__GFP_RETRY_MAYFAIL.patch
deleted file mode 100644
index 6e5f544..0000000
--- 
a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0007-Replace-__GFP_REPEAT-by-__GFP_RETRY_MAYFAIL.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From a8190cd3b346633016d1c0096ef73e0e1ceef438 Mon Sep 17 00:00:00 2001
-From: Madhurkiran Harikrishnan <[email protected]>
-Date: Tue, 5 Dec 2017 09:25:15 -0800
-Subject: [PATCH 7/9] Replace __GFP_REPEAT by __GFP_RETRY_MAYFAIL
-
-Refer kernel patch dcda9b04713c3f6ff0875652924844fae28286ea
-which replaces with a useful semantic
-
-Signed-off-by: Madhurkiran Harikrishnan <[email protected]>
-Upstream-Status: Pending
----
- driver/src/devicedrv/mali/linux/mali_memory_os_alloc.c  | 4 ++++
- driver/src/devicedrv/mali/linux/mali_osk_notification.c | 7 ++++++-
- 2 files changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/driver/src/devicedrv/mali/linux/mali_memory_os_alloc.c 
b/driver/src/devicedrv/mali/linux/mali_memory_os_alloc.c
-index 5fe1270..1602371 100644
---- linux/mali_memory_os_alloc.c
-+++ b/linux/mali_memory_os_alloc.c
-@@ -202,7 +202,11 @@ int mali_mem_os_alloc_pages(mali_mem_os_mem *os_mem, u32 
size)
-       /* Allocate new pages, if needed. */
-       for (i = 0; i < remaining; i++) {
-               dma_addr_t dma_addr;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
-+              gfp_t flags = __GFP_ZERO | __GFP_RETRY_MAYFAIL | __GFP_NOWARN | 
__GFP_COLD;
-+#else
-               gfp_t flags = __GFP_ZERO | __GFP_REPEAT | __GFP_NOWARN | 
__GFP_COLD;
-+#endif
-               int err;
- 
- #if defined(CONFIG_ARM) && !defined(CONFIG_ARM_LPAE)
-diff --git a/driver/src/devicedrv/mali/linux/mali_osk_notification.c 
b/driver/src/devicedrv/mali/linux/mali_osk_notification.c
-index b22fe68..d0c302a 100644
---- linux/mali_osk_notification.c
-+++ b/linux/mali_osk_notification.c
-@@ -55,9 +55,14 @@ _mali_osk_notification_t *_mali_osk_notification_create(u32 
type, u32 size)
- {
-       /* OPT Recycling of notification objects */
-       _mali_osk_notification_wrapper_t *notification;
--
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
-+      notification = (_mali_osk_notification_wrapper_t 
*)kmalloc(sizeof(_mali_osk_notification_wrapper_t) + size,
-+                      GFP_KERNEL | __GFP_HIGH | __GFP_RETRY_MAYFAIL);
-+#else
-       notification = (_mali_osk_notification_wrapper_t 
*)kmalloc(sizeof(_mali_osk_notification_wrapper_t) + size,
-                       GFP_KERNEL | __GFP_HIGH | __GFP_REPEAT);
-+#endif
-+
-       if (NULL == notification) {
-               MALI_DEBUG_PRINT(1, ("Failed to create a notification 
object\n"));
-               return NULL;
--- 
-2.7.4
-
diff --git 
a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0008-mali_internal_sync-Rename-wait_queue_t-with-wait_que.patch
 
b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0008-mali_internal_sync-Rename-wait_queue_t-with-wait_que.patch
deleted file mode 100644
index 592fea0..0000000
--- 
a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0008-mali_internal_sync-Rename-wait_queue_t-with-wait_que.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From 717d7899f6d8048c6b88b3c52e8a9c8afbddbb65 Mon Sep 17 00:00:00 2001
-From: Madhurkiran Harikrishnan <[email protected]>
-Date: Tue, 5 Dec 2017 09:48:42 -0800
-Subject: [PATCH 8/9] mali_internal_sync: Rename wait_queue_t with
- wait_queue_entry_t
-
-Refer kernel patch ac6424b981bce1c4bc55675c6ce11bfe1bbfa64f
-and 2055da which replaces the struct name
-
-Signed-off-by: Madhurkiran Harikrishnan <[email protected]>
-Upstream-Status: Pending
----
- .../src/devicedrv/mali/linux/mali_internal_sync.c  | 27 ++++++++++++++++++++--
- .../src/devicedrv/mali/linux/mali_internal_sync.h  |  4 ++++
- 2 files changed, 29 insertions(+), 2 deletions(-)
-
-diff --git a/driver/src/devicedrv/mali/linux/mali_internal_sync.c 
b/driver/src/devicedrv/mali/linux/mali_internal_sync.c
-index 1f2574e..957a056 100644
---- linux/mali_internal_sync.c
-+++ b/linux/mali_internal_sync.c
-@@ -121,8 +121,13 @@ static void mali_internal_sync_fence_add_fence(struct 
mali_internal_sync_fence *
- }
- #endif
- 
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0)
-+static int mali_internal_sync_fence_wake_up_wq(wait_queue_entry_t *curr, 
unsigned mode,
-+              int wake_flags, void *key)
-+#else
- static int mali_internal_sync_fence_wake_up_wq(wait_queue_t *curr, unsigned 
mode,
-               int wake_flags, void *key)
-+#endif
- {
-       struct mali_internal_sync_fence_waiter *wait;
-       MALI_IGNORE(mode);
-@@ -130,8 +135,12 @@ static int 
mali_internal_sync_fence_wake_up_wq(wait_queue_t *curr, unsigned mode
-       MALI_IGNORE(key);
- 
-       wait = container_of(curr, struct mali_internal_sync_fence_waiter, work);
--      list_del_init(&wait->work.task_list);
- 
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0)
-+      list_del_init(&wait->work.entry);
-+#else
-+      list_del_init(&wait->work.task_list);
-+#endif
-       wait->callback(wait->work.private, wait);
-       return 1;
- }
-@@ -498,7 +507,11 @@ void mali_internal_sync_fence_waiter_init(struct 
mali_internal_sync_fence_waiter
-       MALI_DEBUG_ASSERT_POINTER(waiter);
-       MALI_DEBUG_ASSERT_POINTER(callback);
- 
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0)
-+      INIT_LIST_HEAD(&waiter->work.entry);
-+#else
-       INIT_LIST_HEAD(&waiter->work.task_list);
-+#endif
-       waiter->callback = callback;
- }
- 
-@@ -560,8 +573,13 @@ int mali_internal_sync_fence_wait_async(struct 
mali_internal_sync_fence *sync_fe
-       spin_lock_irqsave(&sync_fence->wq.lock, flags);
-       err =  sync_fence->fence->ops->signaled(sync_fence->fence);
- 
--      if (0 == err)
-+      if (0 == err){
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0)
-+              __add_wait_queue_entry_tail(&sync_fence->wq, &waiter->work);
-+#else
-               __add_wait_queue_tail(&sync_fence->wq, &waiter->work);
-+#endif
-+      }
-       spin_unlock_irqrestore(&sync_fence->wq.lock, flags);
- 
-       return err;
-@@ -578,8 +596,13 @@ int mali_internal_sync_fence_cancel_async(struct 
mali_internal_sync_fence *sync_
-       MALI_DEBUG_ASSERT_POINTER(waiter);
- 
-       spin_lock_irqsave(&sync_fence->wq.lock, flags);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0)
-+      if (!list_empty(&waiter->work.entry))
-+              list_del_init(&waiter->work.entry);
-+#else
-       if (!list_empty(&waiter->work.task_list))
-               list_del_init(&waiter->work.task_list);
-+#endif
-       else
-               ret = -ENOENT;
-       spin_unlock_irqrestore(&sync_fence->wq.lock, flags);
-diff --git a/driver/src/devicedrv/mali/linux/mali_internal_sync.h 
b/driver/src/devicedrv/mali/linux/mali_internal_sync.h
-index a5655c7..70f29f9 100644
---- linux/mali_internal_sync.h
-+++ b/linux/mali_internal_sync.h
-@@ -112,7 +112,11 @@ typedef void (*mali_internal_sync_callback_t)(struct 
mali_internal_sync_fence *s
-               struct mali_internal_sync_fence_waiter *waiter);
- 
- struct mali_internal_sync_fence_waiter {
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0)
-+      wait_queue_entry_t work;
-+#else
-       wait_queue_t work;
-+#endif
-       mali_internal_sync_callback_t callback;
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
- #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
--- 
-2.7.4
-
diff --git 
a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0009-mali_memory_swap_alloc.c-Rename-global_page_state-wi.patch
 
b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0009-mali_memory_swap_alloc.c-Rename-global_page_state-wi.patch
deleted file mode 100644
index 3445512..0000000
--- 
a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0009-mali_memory_swap_alloc.c-Rename-global_page_state-wi.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 478de18bf513ecad419d25981e7b66c78126752c Mon Sep 17 00:00:00 2001
-From: Madhurkiran Harikrishnan <[email protected]>
-Date: Tue, 5 Dec 2017 09:58:36 -0800
-Subject: [PATCH 9/9] mali_memory_swap_alloc.c: Rename global_page_state with
- global_zone_page_state
-
-Refer Kernel commit c41f012ade0b95b0a6e25c7150673e0554736165
-Which simply renames without any functional changes
-
-Signed-off-by: Madhurkiran Harikrishnan <[email protected]>
-Upstream-Status: Pending
----
- driver/src/devicedrv/mali/linux/mali_memory_swap_alloc.c | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/driver/src/devicedrv/mali/linux/mali_memory_swap_alloc.c 
b/driver/src/devicedrv/mali/linux/mali_memory_swap_alloc.c
-index a54faca..e122b4c 100644
---- linux/mali_memory_swap_alloc.c
-+++ b/linux/mali_memory_swap_alloc.c
-@@ -248,7 +248,11 @@ static void 
mali_mem_swap_swapped_bkend_pool_shrink(_mali_mem_swap_pool_shrink_t
-       }
- 
-       /* Get system free pages number. */
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
-+      system_free_size = global_zone_page_state(NR_FREE_PAGES) * PAGE_SIZE;
-+#else
-       system_free_size = global_page_state(NR_FREE_PAGES) * PAGE_SIZE;
-+#endif
-       last_gpu_utilization = _mali_ukk_utilization_gp_pp();
- 
-       if ((last_gpu_utilization < gpu_utilization_threshold_value)
-@@ -575,8 +579,12 @@ int mali_mem_swap_alloc_pages(mali_mem_swap *swap_mem, 
u32 size, u32 *bkend_idx)
- 
-               list_add_tail(&m_page->list, &swap_mem->pages);
-       }
--
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
-+      system_free_size = global_zone_page_state(NR_FREE_PAGES) * PAGE_SIZE;
-+#else
-       system_free_size = global_page_state(NR_FREE_PAGES) * PAGE_SIZE;
-+#endif
-+
- 
-       if ((system_free_size < mali_mem_swap_out_threshold_value)
-           && (mem_backend_swapped_pool_size > 
(mali_mem_swap_out_threshold_value >> 2))
--- 
-2.7.4
-
-- 
2.7.4

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#4598): 
https://lists.yoctoproject.org/g/meta-xilinx/message/4598
Mute This Topic: https://lists.yoctoproject.org/mt/68553774/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-xilinx/unsub  
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to