aboutsummaryrefslogtreecommitdiffstats
path: root/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0008-mali_internal_sync-Rename-wait_queue_t-with-wait_que.patch
blob: 592fea04edc328b0a883369da7ea037bd48ad445 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
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