summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell King <rmk@arm.linux.org.uk>2015-12-08 14:25:16 +0000
committerRussell King <rmk@arm.linux.org.uk>2015-12-08 14:25:43 +0000
commit82ea3195d9297b387d74454b26c0bc1a50d9870a (patch)
tree2273cb6591b5ee90f4f9208212405026ecf0d364
parent0a88716af901c5e4137dfa89e50ece12e1e5ae28 (diff)
etnaviv: add support for non-blocking fence queries
Add the missing piece of "adapt to changed fence/gem wait DRM UAPI" to allow us to test for fence completion without hitting the slower kernel paths. Signed-off-by: Russell King <rmk@arm.linux.org.uk>
-rw-r--r--etnaviv/etnadrm.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/etnaviv/etnadrm.c b/etnaviv/etnadrm.c
index a49e08e..21d6593 100644
--- a/etnaviv/etnadrm.c
+++ b/etnaviv/etnadrm.c
@@ -300,6 +300,8 @@ int viv_fence_finish(struct viv_conn *conn, uint32_t fence, uint32_t timeout)
memset(&req, 0, sizeof(req.r20151126));
req.r20151126.pipe = to_etna_viv_conn(conn)->etnadrm_pipe;
req.r20151126.fence = fence;
+ if (timeout == 0)
+ req.r20151126.flags |= ETNA_WAIT_NONBLOCK;
etnadrm_convert_timeout(&req.r20151126.timeout, timeout);
ret = drmCommandWrite(conn->fd, DRM_ETNAVIV_WAIT_FENCE,
&req.r20151126, sizeof(req.r20151126));
@@ -344,6 +346,8 @@ static int etna_bo_gem_wait(struct etna_bo *bo, uint32_t timeout)
memset(&req, 0, sizeof(req.r20151126));
req.r20151126.pipe = to_etna_viv_conn(conn)->etnadrm_pipe;
req.r20151126.handle = bo->handle;
+ if (timeout == 0)
+ req.r20151126.flags |= ETNA_WAIT_NONBLOCK;
etnadrm_convert_timeout(&req.r20151126.timeout, timeout);
return drmCommandWrite(conn->fd, DRM_ETNAVIV_GEM_WAIT,
&req.r20151126, sizeof(req.r20151126));