drm/vmwgfx: Prepare to support fence fd
authorSinclair Yeh <syeh@vmware.com>
Wed, 5 Jul 2017 08:37:55 +0000 (01:37 -0700)
committerSinclair Yeh <syeh@vmware.com>
Mon, 28 Aug 2017 15:51:28 +0000 (17:51 +0200)
Make the fields and flags available.

Signed-off-by: Sinclair Yeh <syeh@vmware.com>
Reviewed-by: Deepak Singh Rawat <drawat@vmware.com>
Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
include/uapi/drm/vmwgfx_drm.h

index 8c583fd..178dabc 100644 (file)
@@ -4449,11 +4449,6 @@ int vmw_execbuf_ioctl(struct drm_device *dev, unsigned long data,
                arg.context_handle = (uint32_t) -1;
                break;
        case 2:
-               if (arg.pad64 != 0) {
-                       DRM_ERROR("Unused IOCTL data not set to zero.\n");
-                       return -EINVAL;
-               }
-               break;
        default:
                break;
        }
index d9dfde9..0bc784f 100644 (file)
@@ -297,13 +297,17 @@ union drm_vmw_surface_reference_arg {
  * @version: Allows expanding the execbuf ioctl parameters without breaking
  * backwards compatibility, since user-space will always tell the kernel
  * which version it uses.
- * @flags: Execbuf flags. None currently.
+ * @flags: Execbuf flags.
+ * @imported_fence_fd:  FD for a fence imported from another device
  *
  * Argument to the DRM_VMW_EXECBUF Ioctl.
  */
 
 #define DRM_VMW_EXECBUF_VERSION 2
 
+#define DRM_VMW_EXECBUF_FLAG_IMPORT_FENCE_FD (1 << 0)
+#define DRM_VMW_EXECBUF_FLAG_EXPORT_FENCE_FD (1 << 1)
+
 struct drm_vmw_execbuf_arg {
        __u64 commands;
        __u32 command_size;
@@ -312,7 +316,7 @@ struct drm_vmw_execbuf_arg {
        __u32 version;
        __u32 flags;
        __u32 context_handle;
-       __u32 pad64;
+       __s32 imported_fence_fd;
 };
 
 /**
@@ -328,6 +332,7 @@ struct drm_vmw_execbuf_arg {
  * @passed_seqno: The highest seqno number processed by the hardware
  * so far. This can be used to mark user-space fence objects as signaled, and
  * to determine whether a fence seqno might be stale.
+ * @fd: FD associated with the fence, -1 if not exported
  * @error: This member should've been set to -EFAULT on submission.
  * The following actions should be take on completion:
  * error == -EFAULT: Fence communication failed. The host is synchronized.
@@ -345,7 +350,7 @@ struct drm_vmw_fence_rep {
        __u32 mask;
        __u32 seqno;
        __u32 passed_seqno;
-       __u32 pad64;
+       __s32 fd;
        __s32 error;
 };