On Sat, May 16, 2026 at 01:06:15PM +0200, Julian Orth wrote:
This device makes the DRM_IOCTL_SYNCOBJ_* ioctls available via a dedicated device. This allows applications to use syncobjs without having to open device nodes in /dev/dri, on systems that don't have any such nodes, or on systems whose devices don't support the DRIVER_SYNCOBJ_TIMELINE feature.
Wayland uses syncobjs as its buffer synchronization mechanism. Most compositors use the DRM_IOCTL_SYNCOBJ_EVENTFD ioctl to perform a pure CPU wait for syncobj point. DRM devices are not involved in this process except insofar that a DRM device needs to be used to access the ioctl.
Similarly, a software-rendered client might perform rendering on a dedicated thread and use the wayland syncobj protocol to submit frames before they finish rendering. Again, this does not involve DRM devices except insofar ... as above.
As an added benefit, this device removes the need to translate between file descriptors and handles.
Signed-off-by: Julian Orth ju.orth@gmail.com
Documentation/userspace-api/ioctl/ioctl-number.rst | 1 + drivers/misc/Kconfig | 10 + drivers/misc/Makefile | 1 + drivers/misc/syncobj.c | 404 +++++++++++++++++++++ include/uapi/linux/syncobj.h | 75 ++++ 5 files changed, 491 insertions(+)
diff --git a/Documentation/userspace-api/ioctl/ioctl-number.rst b/Documentation/userspace-api/ioctl/ioctl-number.rst index 331223761fff..5e140ae5735e 100644 --- a/Documentation/userspace-api/ioctl/ioctl-number.rst +++ b/Documentation/userspace-api/ioctl/ioctl-number.rst @@ -395,6 +395,7 @@ Code Seq# Include File Comments mailto:michael.klein@puffin.lb.shuttle.de 0xCC 00-0F drivers/misc/ibmvmc.h pseries VMC driver 0xCD 01 linux/reiserfs_fs.h Dead since 6.13 +0xCD 00-0F uapi/linux/syncobj.h 0xCE 01-02 uapi/linux/cxl_mem.h Compute Express Link Memory Devices 0xCF 02 fs/smb/client/cifs_ioctl.h 0xDD 00-3F ZFCP device driver see drivers/s390/scsi/ diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig index 00683bf06258..c1e7749bd356 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig @@ -644,6 +644,16 @@ config MCHP_LAN966X_PCI - lan966x-miim (MDIO_MSCC_MIIM) - lan966x-switch (LAN966X_SWITCH) +config SYNCOBJ_DEV
- tristate "DRM syncobj device (/dev/syncobj)"
- depends on DRM
If this is a drm-only thing, then please put it in the drm subdirs, not in drivers/misc/ as that would imply that I have to maintain this, not the DRM developers :)
thanks,
greg k-h