drm/msm: Add syncobj support.
This 1) Enables core DRM syncobj support. 2) Adds options to the submission ioctl to wait/signal syncobjs. Just like the wait fence fd, this does inline waits. Using the scheduler would be nice but I believe it is out of scope for this work. Support for timeline syncobjs is implemented and the interface is ready for it, but I'm not enabling it yet until there is some code for turnip to use it. The reset is mostly in there because in the presence of waiting and signalling the same semaphores, resetting them after signalling can become very annoying. v2: - Fixed style issues - Removed a cleanup issue in a failure case - Moved to a copy_from_user per syncobj v3: - Fixed a missing declaration introduced in v2 - Reworked to use ERR_PTR/PTR_ERR - Simplified failure gotos. Used by: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2769 Signed-off-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Jordan Crouse <jcrouse@codeaurora.org> Signed-off-by: Rob Clark <robdclark@chromium.org>
This commit is contained in:

committed by
Rob Clark

parent
6a523388a2
commit
ab723b7a99
@@ -37,9 +37,10 @@
|
||||
* - 1.4.0 - softpin, MSM_RELOC_BO_DUMP, and GEM_INFO support to set/get
|
||||
* GEM object's debug name
|
||||
* - 1.5.0 - Add SUBMITQUERY_QUERY ioctl
|
||||
* - 1.6.0 - Syncobj support
|
||||
*/
|
||||
#define MSM_VERSION_MAJOR 1
|
||||
#define MSM_VERSION_MINOR 5
|
||||
#define MSM_VERSION_MINOR 6
|
||||
#define MSM_VERSION_PATCHLEVEL 0
|
||||
|
||||
static const struct drm_mode_config_funcs mode_config_funcs = {
|
||||
@@ -1002,7 +1003,8 @@ static struct drm_driver msm_driver = {
|
||||
.driver_features = DRIVER_GEM |
|
||||
DRIVER_RENDER |
|
||||
DRIVER_ATOMIC |
|
||||
DRIVER_MODESET,
|
||||
DRIVER_MODESET |
|
||||
DRIVER_SYNCOBJ,
|
||||
.open = msm_open,
|
||||
.postclose = msm_postclose,
|
||||
.lastclose = drm_fb_helper_lastclose,
|
||||
|
Reference in New Issue
Block a user