From: Dave Airlie Date: Mon, 6 Oct 2008 06:40:20 +0000 (+1000) Subject: radeon: fix pin ioctl interface to mesa can find offset for pinned buffers X-Git-Tag: submit/1.0/20121108.012404~642^2~43 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4a4d7727c6c6eff4cf19d5debb91a6fcac555832;p=profile%2Fivi%2Flibdrm.git radeon: fix pin ioctl interface to mesa can find offset for pinned buffers --- diff --git a/linux-core/radeon_gem.c b/linux-core/radeon_gem.c index 8c6f836..b9c3b80 100644 --- a/linux-core/radeon_gem.c +++ b/linux-core/radeon_gem.c @@ -347,8 +347,9 @@ int radeon_gem_pin_ioctl(struct drm_device *dev, void *data, flags |= DRM_BO_FLAG_MEM_TT; else if (args->pin_domain == RADEON_GEM_DOMAIN_VRAM) flags |= DRM_BO_FLAG_MEM_VRAM; - else - return -EINVAL; + else /* hand back the offset we currently have if no args supplied + - this is to allow old mesa to work - its a hack */ + flags = 0; } obj = drm_gem_object_lookup(dev, file_priv, args->handle); @@ -359,11 +360,11 @@ int radeon_gem_pin_ioctl(struct drm_device *dev, void *data, /* validate into a pin with no fence */ DRM_DEBUG("got here %p %p %d\n", obj, obj_priv->bo, atomic_read(&obj_priv->bo->usage)); - if (!(obj_priv->bo->type != drm_bo_type_kernel && !DRM_SUSER(DRM_CURPROC))) { + if (flags && !(obj_priv->bo->type != drm_bo_type_kernel && !DRM_SUSER(DRM_CURPROC))) { ret = drm_bo_do_validate(obj_priv->bo, flags, mask, DRM_BO_HINT_DONT_FENCE, 0); } else - ret = 0; + ret = 0; args->offset = obj_priv->bo->offset; DRM_DEBUG("got here %p %p %x\n", obj, obj_priv->bo, obj_priv->bo->offset);