summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@gmail.com>2013-04-30 16:30:20 +1000
committerDave Airlie <airlied@gmail.com>2013-04-30 16:30:20 +1000
commitd73d17b0d23a9a7d2e91a7e2b7f958fdd4a6f99f (patch)
tree12247f8c2b5cd7cdba3d7b5686d2af806395cc3a
parent483996db72bf1f04b67bf794e1090a1d9e363f52 (diff)
add flags to 3d wait
-rw-r--r--drivers/gpu/drm/qxl/qxl_ioctl.c5
-rw-r--r--include/uapi/drm/qxl_drm.h3
2 files changed, 6 insertions, 2 deletions
diff --git a/drivers/gpu/drm/qxl/qxl_ioctl.c b/drivers/gpu/drm/qxl/qxl_ioctl.c
index 7f7f388e3b6e..a48df30810c1 100644
--- a/drivers/gpu/drm/qxl/qxl_ioctl.c
+++ b/drivers/gpu/drm/qxl/qxl_ioctl.c
@@ -581,6 +581,7 @@ static int qxl_3d_wait_ioctl(struct drm_device *dev, void *data,
struct drm_gem_object *gobj = NULL;
struct qxl_bo *qobj = NULL;
int ret;
+ bool wait = false;
gobj = drm_gem_object_lookup(dev, file, args->handle);
if (gobj == NULL)
return -ENOENT;
@@ -592,7 +593,9 @@ static int qxl_3d_wait_ioctl(struct drm_device *dev, void *data,
goto out;
}
- ret = qxl_3d_wait(qobj, false);
+ if (args->flags & QXL_3D_WAIT_NOWAIT)
+ wait = true;
+ ret = qxl_3d_wait(qobj, wait);
out:
drm_gem_object_unreference_unlocked(gobj);
return ret;
diff --git a/include/uapi/drm/qxl_drm.h b/include/uapi/drm/qxl_drm.h
index 0e806405c902..c256270526cb 100644
--- a/include/uapi/drm/qxl_drm.h
+++ b/include/uapi/drm/qxl_drm.h
@@ -186,9 +186,10 @@ struct drm_qxl_3d_transfer_get {
uint32_t level;
};
+#define QXL_3D_WAIT_NOWAIT 1 /* like it */
struct drm_qxl_3d_wait {
uint32_t handle; /* 0 is an invalid handle */
- uint32_t pad;
+ uint32_t flags;
};
#define DRM_IOCTL_QXL_ALLOC \