From 5bd808a2c793a81fe79c0a473c25c6e50c313fef Mon Sep 17 00:00:00 2001 From: Jonathan Gray Date: Wed, 5 Jun 2013 15:00:33 +1000 Subject: [PATCH] radeon/winsys: correct RADEON_GEM_WAIT_IDLE use RADEON_GEM_WAIT_IDLE is declared DRM_IOW but mesa uses it with drmCommandWriteRead instead of drmCommandWrite which leads to the ioctl being unmatched and returning an error on at least OpenBSD. Problem originally noticed in libdrm by Mark Kettenis. Dave Airlie pointed out that mesa has the same issue. Signed-off-by: Jonathan Gray --- src/gallium/winsys/radeon/drm/radeon_drm_bo.c | 2 +- src/gallium/winsys/radeon/tools/radeon_ctx.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c index 6ec171328bb..bcd4b27b055 100644 --- a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c +++ b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c @@ -167,7 +167,7 @@ static void radeon_bo_wait(struct pb_buffer *_buf, enum radeon_bo_usage usage) struct drm_radeon_gem_wait_idle args; memset(&args, 0, sizeof(args)); args.handle = bo->handle; - while (drmCommandWriteRead(bo->rws->fd, DRM_RADEON_GEM_WAIT_IDLE, + while (drmCommandWrite(bo->rws->fd, DRM_RADEON_GEM_WAIT_IDLE, &args, sizeof(args)) == -EBUSY); } } diff --git a/src/gallium/winsys/radeon/tools/radeon_ctx.h b/src/gallium/winsys/radeon/tools/radeon_ctx.h index c2967ff0ff8..1eecfd5b6ff 100644 --- a/src/gallium/winsys/radeon/tools/radeon_ctx.h +++ b/src/gallium/winsys/radeon/tools/radeon_ctx.h @@ -98,7 +98,7 @@ static void bo_wait(struct ctx *ctx, struct bo *bo) memset(&args, 0, sizeof(args)); args.handle = bo->handle; do { - r = drmCommandWriteRead(ctx->fd, DRM_RADEON_GEM_WAIT_IDLE, &args, sizeof(args)); + r = drmCommandWrite(ctx->fd, DRM_RADEON_GEM_WAIT_IDLE, &args, sizeof(args)); } while (r == -EBUSY); } -- 2.30.2