From 717d7899f6d8048c6b88b3c52e8a9c8afbddbb65 Mon Sep 17 00:00:00 2001 From: Madhurkiran Harikrishnan 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 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