hc
2024-05-10 23fa18eaa71266feff7ba8d83022d9e1cc83c65a
kernel/include/drm/drm_syncobj.h
....@@ -26,9 +26,10 @@
2626 #ifndef __DRM_SYNCOBJ_H__
2727 #define __DRM_SYNCOBJ_H__
2828
29
-#include "linux/dma-fence.h"
29
+#include <linux/dma-fence.h>
30
+#include <linux/dma-fence-chain.h>
3031
31
-struct drm_syncobj_cb;
32
+struct drm_file;
3233
3334 /**
3435 * struct drm_syncobj - sync object.
....@@ -60,25 +61,6 @@
6061 * @file: A file backing for this syncobj.
6162 */
6263 struct file *file;
63
-};
64
-
65
-typedef void (*drm_syncobj_func_t)(struct drm_syncobj *syncobj,
66
- struct drm_syncobj_cb *cb);
67
-
68
-/**
69
- * struct drm_syncobj_cb - callback for drm_syncobj_add_callback
70
- * @node: used by drm_syncob_add_callback to append this struct to
71
- * &drm_syncobj.cb_list
72
- * @func: drm_syncobj_func_t to call
73
- *
74
- * This struct will be initialized by drm_syncobj_add_callback, additional
75
- * data can be passed along by embedding drm_syncobj_cb in another struct.
76
- * The callback will get called the next time drm_syncobj_replace_fence is
77
- * called.
78
- */
79
-struct drm_syncobj_cb {
80
- struct list_head node;
81
- drm_syncobj_func_t func;
8264 };
8365
8466 void drm_syncobj_free(struct kref *kref);
....@@ -131,15 +113,14 @@
131113
132114 struct drm_syncobj *drm_syncobj_find(struct drm_file *file_private,
133115 u32 handle);
134
-void drm_syncobj_add_callback(struct drm_syncobj *syncobj,
135
- struct drm_syncobj_cb *cb,
136
- drm_syncobj_func_t func);
137
-void drm_syncobj_remove_callback(struct drm_syncobj *syncobj,
138
- struct drm_syncobj_cb *cb);
116
+void drm_syncobj_add_point(struct drm_syncobj *syncobj,
117
+ struct dma_fence_chain *chain,
118
+ struct dma_fence *fence,
119
+ uint64_t point);
139120 void drm_syncobj_replace_fence(struct drm_syncobj *syncobj,
140121 struct dma_fence *fence);
141122 int drm_syncobj_find_fence(struct drm_file *file_private,
142
- u32 handle,
123
+ u32 handle, u64 point, u64 flags,
143124 struct dma_fence **fence);
144125 void drm_syncobj_free(struct kref *kref);
145126 int drm_syncobj_create(struct drm_syncobj **out_syncobj, uint32_t flags,