blob: 592fea04edc328b0a883369da7ea037bd48ad445 [file] [log] [blame]
From 717d7899f6d8048c6b88b3c52e8a9c8afbddbb65 Mon Sep 17 00:00:00 2001
From: Madhurkiran Harikrishnan <madhurki@xilinx.com>
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 <madhurki@xilinx.com>
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