Gustavo Padovan
b3dfbdf261
dma-buf/fence: add fence_array fences v6
...
struct fence_array inherits from struct fence and carries a
collection of fences that needs to be waited together.
It is useful to translate a sync_file to a fence to remove the complexity
of dealing with sync_files on DRM drivers. So even if there are many
fences in the sync_file that needs to waited for a commit to happen,
they all get added to the fence_collection and passed for DRM use as
a standard struct fence.
That means that no changes needed to any driver besides supporting fences.
To avoid fence_array's fence allocates a new timeline if needed (when
combining fences from different timelines).
v2: Comments by Daniel Vetter:
- merge fence_collection_init() and fence_collection_add()
- only add callbacks at ->enable_signalling()
- remove fence_collection_put()
- check for type on to_fence_collection()
- adjust fence_is_later() and fence_later() to WARN_ON() if they
are used with collection fences.
v3: - Initialize fence_cb.node at fence init.
Comments by Chris Wilson:
- return "unbound" on fence_collection_get_timeline_name()
- don't stop adding callbacks if one fails
- remove redundant !! on fence_collection_enable_signaling()
- remove redundant () on fence_collection_signaled
- use fence_default_wait() instead
v4 (chk): Rework, simplification and cleanup:
- Drop FENCE_NO_CONTEXT handling, always allocate a context.
- Rename to fence_array.
- Return fixed driver name.
- Register only one callback at a time.
- Document that create function takes ownership of array.
v5 (chk): More work and fixes:
- Avoid deadlocks by adding all callbacks at once again.
- Stop trying to remove the callbacks.
- Provide context and sequence number for the array fence.
v6 (chk): Fixes found during testing
- Fix stupid typo in _enable_signaling().
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk >
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk >
Acked-by: Sumit Semwal <sumit.semwal@linaro.org >
[danvet: Improve commit message as suggested by Gustavo.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/1464786612-5010-3-git-send-email-deathsimple@vodafone.de
2016-06-02 09:26:15 +02:00
..
2016-04-05 16:53:41 -07:00
2016-05-24 11:00:20 -07:00
2016-05-09 11:07:28 +02:00
2016-05-26 01:15:39 +02:00
2016-05-09 16:18:37 +02:00
2016-02-04 18:25:55 +01:00
2016-05-17 10:15:34 +05:30
2016-03-04 23:50:27 -06:00
2016-04-05 16:57:15 +02:00
2016-04-14 14:03:25 +02:00
2016-04-23 22:14:34 +01:00
2016-01-27 14:32:48 -08:00
2016-05-27 13:41:54 -07:00
2016-01-07 10:10:50 -05:00
2016-05-28 12:32:01 -07:00
2016-05-05 23:23:05 -04:00
2016-05-20 14:35:07 -07:00
2016-05-26 09:36:10 -07:00
2016-05-10 15:44:18 -07:00
2016-04-29 11:02:33 +02:00
2016-03-02 20:05:23 +01:00
2016-03-02 20:05:23 +01:00
2016-03-02 20:05:23 +01:00
2016-04-25 14:11:10 +01:00
2016-04-29 16:44:47 +02:00
2016-04-21 00:01:21 +02:00
2016-05-26 20:52:15 +02:00
2016-03-17 12:50:55 -07:00
2016-05-17 12:29:34 -04:00
2016-01-21 14:47:08 -08:00
2016-05-17 18:06:18 +01:00
2016-03-17 15:09:34 -07:00
2016-05-18 13:14:02 -07:00
2016-04-25 18:51:31 +01:00
2015-12-16 16:36:25 +02:00
2016-05-28 16:15:25 -07:00
2016-03-17 15:09:34 -07:00
2016-05-04 10:25:58 -07:00
2016-05-16 16:45:48 +02:00
2012-10-13 10:46:48 +01:00
2015-12-23 08:37:10 -07:00
2010-11-23 20:14:46 +00:00
2016-04-09 03:12:58 +02:00
2016-01-04 16:19:57 +00:00
2012-10-08 13:50:20 +10:30
2015-01-28 18:45:23 -05:00
2016-05-23 17:53:39 -07:00
2016-03-11 14:00:03 +02:00
2016-03-07 16:11:14 -08:00
2016-01-14 13:40:30 +01:00
2016-05-05 09:58:52 +02:00
2016-05-18 18:46:55 -07:00
2016-03-15 16:55:16 -07:00
2016-03-15 16:55:16 -07:00
2016-04-04 10:41:08 -07:00
2016-05-04 23:41:14 +02:00
2016-01-09 08:39:04 -08:00
2016-05-13 14:01:43 +02:00
2016-01-24 03:47:37 +01:00
2016-01-24 03:49:03 +01:00
2016-05-05 13:03:29 -06:00
2016-02-19 22:54:09 -05:00
2016-05-09 09:24:02 -07:00
2016-04-25 19:13:44 -06:00
2016-04-12 15:07:36 -06:00
2016-05-26 19:34:26 -07:00
2016-05-10 08:41:37 -06:00
2009-01-04 13:33:20 -08:00
2016-05-19 19:12:14 -07:00
2016-05-04 00:52:29 -04:00
2016-03-25 11:37:57 -04:00
2016-04-04 10:41:08 -07:00
2016-03-03 21:18:29 +11:00
2016-02-22 08:51:38 +01:00
2016-03-22 15:36:02 -07:00
2016-04-20 17:50:06 +08:00
2016-04-25 15:45:14 -04:00
2016-02-16 13:04:58 -05:00
2016-01-27 09:10:29 -05:00
2016-04-21 14:47:18 -07:00
2016-04-19 16:54:26 -07:00
2016-01-27 12:38:03 +01:00
2016-04-22 11:38:56 -07:00
2014-01-21 20:18:26 -08:00
2013-02-13 06:00:53 -08:00
2016-05-20 17:58:30 -07:00
2016-03-22 15:36:02 -07:00
2016-02-08 19:04:55 +01:00
2016-05-19 19:12:14 -07:00
2016-05-19 19:12:14 -07:00
2016-03-25 19:10:03 +01:00
2015-05-10 19:15:52 +02:00
2016-05-23 11:48:48 -07:00
2016-02-20 14:11:01 -08:00
2016-05-03 14:59:30 -07:00
2016-02-20 14:11:01 -08:00
2016-05-06 14:58:25 +02:00
2016-04-08 22:41:36 +02:00
2016-05-06 14:58:25 +02:00
2016-05-06 14:58:22 +02:00
2016-05-19 19:12:14 -07:00
2016-05-13 14:01:59 +02:00
2016-03-22 15:36:02 -07:00
2016-04-15 22:35:44 +08:00
2016-03-01 16:55:48 -08:00
2016-05-26 20:00:28 -07:00
2016-05-28 16:15:25 -07:00
2016-04-12 14:14:21 -07:00
2016-05-19 19:12:14 -07:00
2015-12-30 13:01:03 -05:00
2016-04-15 11:20:32 -07:00
2016-05-03 11:20:07 +09:00
2016-03-10 17:12:09 -05:00
2016-05-20 21:26:15 -07:00
2016-04-26 15:47:32 -07:00
2012-10-13 10:46:48 +01:00
2016-02-11 15:33:38 +00:00
2016-03-19 11:03:49 +01:00
2016-05-09 15:33:29 +02:00
2016-05-09 15:33:29 +02:00
2016-04-12 21:07:06 +05:30
2016-01-15 22:08:45 +01:00
2016-02-09 13:05:23 +01:00
2016-02-11 19:23:28 -08:00
2016-05-20 17:58:30 -07:00
2008-01-28 23:21:18 +01:00
2016-05-27 16:03:22 -07:00
2016-05-17 15:48:12 -04:00
2016-01-06 16:31:56 -05:00
2016-04-18 14:45:08 -04:00
2015-12-15 08:53:36 -05:00
2016-03-29 16:30:56 -04:00
2016-02-25 22:12:26 -08:00
2016-04-15 08:49:47 -07:00
2016-03-15 16:55:16 -07:00
2016-05-02 16:24:49 +02:00
2016-06-02 09:26:15 +02:00
2016-06-02 08:27:41 +02:00
2016-05-02 19:49:28 -04:00
2016-05-16 13:49:32 -04:00
2016-02-29 08:35:10 +01:00
2016-03-17 15:09:34 -07:00
2016-05-27 17:14:05 -07:00
2016-05-07 10:32:33 -07:00
2016-04-19 22:04:53 +02:00
2016-05-19 19:12:14 -07:00
2016-03-14 00:17:28 -04:00
2016-05-17 17:11:27 -07:00
2015-12-22 17:10:17 -06:00
2016-05-20 17:58:30 -07:00
2016-05-10 15:43:09 -04:00
2016-03-17 15:09:34 -07:00
2016-02-20 12:53:31 +01:00
2016-05-20 17:58:30 -07:00
2016-05-28 15:48:31 -04:00
2015-12-28 13:41:50 +01:00
2016-03-17 15:09:34 -07:00
2016-05-19 19:12:14 -07:00
2016-05-20 17:58:30 -07:00
2016-05-19 19:12:14 -07:00
2016-05-20 17:58:30 -07:00
2016-04-30 14:01:37 -07:00
2012-03-26 21:47:19 +02:00
2012-10-06 13:14:36 +02:00
2012-10-13 10:46:48 +01:00
2007-05-01 23:26:34 +02:00
2012-06-04 16:49:43 +02:00
2016-05-04 22:39:17 +02:00
2012-11-28 11:36:32 +01:00
2016-05-04 22:39:17 +02:00
2015-05-05 13:40:42 -06:00
2015-11-25 09:22:00 -07:00
2016-04-06 13:18:19 +02:00
2016-04-13 10:41:08 +02:00
2016-03-11 14:58:58 -05:00
2016-05-03 16:00:54 -04:00
2016-02-06 02:59:51 -05:00
2015-12-15 16:50:20 -05:00
2016-02-11 09:59:22 -05:00
2016-05-01 09:23:52 -04:00
2015-12-15 23:26:51 -05:00
2015-10-09 07:49:05 -07:00
2016-02-22 08:51:37 +01:00
2016-02-15 12:42:38 +00:00
2016-03-25 16:37:42 -07:00
2016-05-03 18:23:02 +01:00
2016-05-03 18:23:02 +01:00
2016-04-28 12:17:32 +01:00
2016-03-22 15:36:02 -07:00
2016-05-09 19:39:17 +02:00
2015-01-19 16:11:59 +00:00
2016-05-16 15:12:02 -05:00
2016-04-20 15:42:24 -04:00
2016-05-11 19:31:40 -04:00
2006-04-26 12:56:16 +01:00
2016-05-02 13:42:51 +02:00
2016-05-11 22:37:54 +02:00
2016-05-02 13:42:51 +02:00
2016-05-02 13:42:50 +02:00
2016-05-02 09:32:04 -07:00
2016-05-16 11:14:29 -04:00
2016-01-28 14:19:12 -08:00
2016-05-05 22:35:54 -04:00
2012-10-13 10:46:48 +01:00
2016-05-20 17:58:30 -07:00
2016-05-20 17:58:30 -07:00
2016-03-22 15:36:02 -07:00
2016-01-16 11:17:23 -08:00
2013-11-13 12:09:07 +09:00
2016-05-20 22:20:48 -07:00
2016-05-20 21:26:15 -07:00
2016-05-23 17:04:14 -07:00
2016-04-11 22:44:15 +01:00
2016-04-11 22:44:15 +01:00
2016-03-22 15:36:02 -07:00
2015-05-13 10:19:35 +02:00
2016-05-25 16:12:05 +02:00
2015-11-25 17:24:23 +01:00
2016-01-15 17:56:32 -08:00
2016-02-09 11:54:23 +01:00
2013-02-01 17:47:04 -08:00
2016-05-06 10:26:07 +02:00
2016-05-09 12:36:46 -04:00
2016-04-28 16:23:16 -07:00
2016-05-06 12:51:10 -06:00
2016-03-17 15:09:34 -07:00
2016-01-20 17:09:18 -08:00
2016-03-09 15:43:42 -08:00
2016-05-17 12:06:35 +02:00
2016-05-16 14:47:16 -07:00
2016-05-19 09:21:36 -07:00
2016-01-20 17:09:18 -08:00
2016-02-22 22:44:04 -05:00
2016-03-14 12:19:46 -04:00
2016-05-03 15:07:35 -07:00
2016-04-11 21:15:48 -04:00
2016-01-15 17:56:32 -08:00
2016-05-20 17:58:30 -07:00
2016-05-27 15:23:32 -07:00
2016-03-17 13:47:50 -07:00
2016-05-19 19:12:14 -07:00
2016-05-19 19:12:14 -07:00
2016-01-15 17:56:32 -08:00
2016-03-15 16:55:16 -07:00
2016-03-20 16:47:13 -04:00
2016-05-19 19:12:14 -07:00
2016-05-26 15:35:44 -07:00
2016-05-27 15:57:31 -07:00
2016-02-18 19:46:30 +01:00
2016-03-15 16:55:16 -07:00
2016-04-28 11:44:19 +02:00
2016-05-20 17:58:30 -07:00
2012-11-19 05:59:19 -08:00
2016-04-01 15:00:10 +02:00
2016-02-07 19:10:12 -08:00
2016-05-10 23:56:28 -04:00
2016-04-22 12:26:23 -07:00
2016-05-04 00:52:29 -04:00
2016-05-20 18:03:15 -04:00
2016-05-20 18:03:15 -04:00
2015-06-18 21:14:31 +02:00
2016-03-02 20:05:26 +01:00
2016-02-18 11:42:22 -05:00
2016-05-17 15:48:12 -04:00
2016-05-17 15:47:55 -04:00
2016-05-17 15:05:23 -07:00
2016-04-04 10:41:08 -07:00
2016-05-26 10:33:33 -07:00
2016-05-23 17:04:14 -07:00
2016-04-25 15:09:11 -04:00
2016-03-23 12:34:17 +01:00
2016-05-19 19:12:14 -07:00
2016-03-01 20:36:58 +01:00
2016-02-16 13:04:58 -05:00
2016-03-21 19:30:06 -04:00
2016-05-02 09:13:35 -06:00
2016-05-01 14:01:00 -07:00
2016-05-12 07:07:42 -05:00
2016-05-16 07:22:35 -05:00
2016-01-05 11:20:12 +01:00
2016-05-02 09:00:56 -05:00
2016-05-09 15:33:29 +02:00
2016-01-15 12:30:35 -06:00
2016-05-20 14:51:34 -07:00
2015-12-18 11:17:26 +05:30
2014-06-10 14:35:22 -07:00
2016-04-15 11:52:28 +03:00
2016-04-26 10:19:38 +05:30
2016-05-23 17:04:14 -07:00
2015-05-08 12:27:59 +02:00
2016-05-19 19:12:14 -07:00
2016-03-15 16:55:16 -07:00
2016-03-15 16:55:16 -07:00
2016-05-19 19:12:14 -07:00
2016-03-17 15:09:34 -07:00
2016-05-20 17:58:30 -07:00
2016-05-20 17:58:30 -07:00
2015-06-01 07:08:18 +09:00
2014-01-23 16:36:55 -08:00
2016-04-08 11:08:12 -05:00
2016-03-07 11:39:16 -06:00
2010-03-12 15:52:42 -08:00
2016-05-19 13:10:54 -07:00
2016-05-03 10:35:49 -05:00
2011-08-19 21:03:22 +04:00
2015-10-06 11:25:31 -07:00
2016-05-20 17:58:30 -07:00
2016-05-25 17:05:40 -07:00
2016-02-11 18:35:48 -08:00
2016-02-11 18:35:48 -08:00
2016-03-14 15:43:11 -04:00
2016-05-10 15:06:19 -04:00
2015-01-25 23:17:28 -05:00
2016-01-19 19:25:21 -05:00
2016-02-18 19:46:33 +01:00
2016-04-09 03:10:50 +02:00
2016-03-17 02:32:04 +01:00
2016-04-22 02:29:17 +02:00
2016-05-05 01:38:44 +02:00
2016-04-22 01:32:37 +02:00
2015-05-30 02:17:15 +02:00
2015-03-18 15:54:27 +01:00
2016-04-22 01:32:37 +02:00
2016-04-14 09:01:47 -06:00
2016-04-22 10:29:05 +02:00
2016-03-15 16:55:16 -07:00
2016-05-19 19:12:14 -07:00
2015-12-06 21:25:17 -05:00
2016-03-31 00:30:26 -04:00
2016-03-02 16:44:27 +01:00
2016-02-15 07:02:32 +01:00
2016-01-02 00:29:35 +01:00
2012-10-13 10:46:48 +01:00
2016-03-02 17:13:02 -08:00
2015-10-21 14:46:56 -06:00
2016-05-20 17:58:30 -07:00
2016-02-16 13:04:58 -05:00
2016-04-09 03:10:50 +02:00
2016-04-25 23:47:44 +02:00
2016-03-10 09:43:36 -08:00
2016-03-03 14:23:43 -08:00
2016-01-20 17:09:18 -08:00
2016-05-17 14:48:03 +02:00
2016-02-09 19:01:11 +00:00
2015-10-14 14:51:22 -05:00
2016-03-17 15:09:34 -07:00
2016-02-09 13:05:23 +01:00
2016-02-09 13:05:23 +01:00
2016-05-20 17:58:30 -07:00
2016-05-20 17:58:30 -07:00
2016-01-20 17:09:18 -08:00
2016-04-14 21:14:03 -04:00
2016-04-23 18:51:33 -04:00
2016-03-31 13:34:50 -07:00
2016-03-31 13:37:37 -07:00
2016-03-31 13:37:37 -07:00
2014-01-21 23:17:20 -08:00
2016-03-05 21:30:41 +09:00
2016-05-12 15:50:19 -07:00
2016-05-08 10:16:02 -04:00
2016-03-30 15:42:03 +02:00
2016-04-04 18:15:23 +02:00
2016-02-24 09:12:45 +01:00
2016-04-05 10:56:32 +02:00
2016-03-22 15:36:02 -07:00
2016-03-22 15:36:02 -07:00
2016-03-22 15:36:02 -07:00
2016-03-17 15:09:34 -07:00
2016-03-10 16:04:24 -08:00
2016-05-06 11:09:00 -07:00
2016-03-14 17:08:15 +01:00
2016-01-10 22:13:15 -05:00
2016-04-13 10:42:20 +02:00
2016-05-26 00:04:58 -04:00
2016-04-15 16:53:14 -04:00
2016-05-26 15:35:44 -07:00
2016-02-16 09:26:27 +00:00
2016-04-15 17:29:35 -04:00
2016-05-17 14:41:03 -07:00
2016-04-30 09:26:55 -07:00
2013-07-09 10:33:28 -07:00
2016-04-14 12:56:09 -07:00
2016-05-26 15:35:44 -07:00
2016-04-30 09:26:55 -07:00
2016-04-30 09:26:55 -07:00
2015-12-17 11:18:44 +01:00
2016-01-04 16:11:11 -05:00
2016-01-20 17:09:18 -08:00
2016-01-22 18:08:52 -05:00
2016-05-23 17:04:14 -07:00
2016-05-20 19:58:32 -04:00
2016-05-19 19:12:14 -07:00
2016-05-19 19:12:14 -07:00
2016-05-26 15:35:44 -07:00
2015-10-20 10:23:55 +02:00
2015-12-15 23:26:51 -05:00
2016-05-08 23:46:14 -04:00
2015-01-03 14:32:57 -05:00
2016-02-23 19:59:55 -08:00
2016-03-25 16:37:42 -07:00
2008-05-26 16:15:32 +02:00
2016-05-03 14:59:30 -07:00
2016-04-02 20:23:09 -04:00
2016-01-06 11:02:29 +01:00
2016-04-21 10:47:26 +10:00
2016-05-19 19:12:14 -07:00
2016-05-28 15:42:50 -04:00
2016-02-25 11:27:16 +01:00
2016-05-20 17:58:30 -07:00
2016-01-20 17:29:52 -05:00
2016-04-29 17:37:10 -07:00
2012-02-10 11:42:25 -08:00
2016-05-20 17:58:30 -07:00
2016-03-14 14:55:26 -04:00
2005-06-23 20:59:16 -07:00
2011-10-31 19:32:32 -04:00
2016-05-17 07:28:28 -07:00
2016-01-14 16:00:49 -08:00
2016-03-17 15:09:34 -07:00
2016-05-19 19:12:14 -07:00
2016-03-02 17:13:17 -08:00
2016-04-22 11:49:04 -07:00
2016-05-06 10:42:29 +02:00
2016-01-18 14:49:33 -05:00
2016-05-18 18:55:19 -07:00
2016-03-15 16:55:16 -07:00
2016-03-09 11:58:41 -05:00
2012-03-04 17:54:34 -05:00
2016-04-26 15:47:32 -07:00
2016-01-28 11:58:02 -08:00
2016-05-20 20:57:27 -07:00
2016-05-23 17:04:14 -07:00
2016-05-04 16:55:11 -04:00
2015-12-17 09:57:27 -08:00
2016-02-10 13:19:03 +00:00
2016-04-07 16:53:29 -04:00
2015-12-18 17:48:50 -08:00
2016-04-08 19:46:28 -04:00
2016-04-13 12:02:28 -07:00
2016-05-03 14:32:07 -07:00
2016-05-20 17:58:30 -07:00
2016-04-06 16:14:24 +01:00
2016-02-22 16:10:08 -07:00
2016-05-31 13:15:57 +02:00
2016-01-12 20:47:06 +02:00
2016-03-02 17:01:57 +02:00
2016-03-02 17:01:57 +02:00
2016-03-17 15:09:34 -07:00
2016-05-23 11:48:48 -07:00
2016-01-14 16:00:49 -08:00
2016-05-19 19:12:14 -07:00
2016-02-07 21:36:02 -08:00
2015-02-02 10:09:54 -08:00
2016-02-24 09:09:45 +01:00
2016-03-16 21:11:19 +01:00
2016-01-29 13:31:10 -05:00
2016-03-03 14:42:50 -07:00
2016-05-27 20:09:16 -04:00
2016-05-20 17:58:30 -07:00