diff options
Diffstat (limited to 'drivers/gpu/drm/qxl/qxl_prime.c')
| -rw-r--r-- | drivers/gpu/drm/qxl/qxl_prime.c | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/drivers/gpu/drm/qxl/qxl_prime.c b/drivers/gpu/drm/qxl/qxl_prime.c index 9f029dda1f07..19bf551a7b31 100644 --- a/drivers/gpu/drm/qxl/qxl_prime.c +++ b/drivers/gpu/drm/qxl/qxl_prime.c @@ -23,25 +23,27 @@ */ #include "qxl_drv.h" +#include "qxl_object.h" /* Empty Implementations as there should not be any other driver for a virtual * device that might share buffers with qxl */ int qxl_gem_prime_pin(struct drm_gem_object *obj) { - WARN_ONCE(1, "not implemented"); - return -ENOSYS; + struct qxl_bo *bo = gem_to_qxl_bo(obj); + + return qxl_bo_pin_locked(bo); } void qxl_gem_prime_unpin(struct drm_gem_object *obj) { - WARN_ONCE(1, "not implemented"); -} + struct qxl_bo *bo = gem_to_qxl_bo(obj); + qxl_bo_unpin_locked(bo); +} struct sg_table *qxl_gem_prime_get_sg_table(struct drm_gem_object *obj) { - WARN_ONCE(1, "not implemented"); return ERR_PTR(-ENOSYS); } @@ -49,24 +51,25 @@ struct drm_gem_object *qxl_gem_prime_import_sg_table( struct drm_device *dev, struct dma_buf_attachment *attach, struct sg_table *table) { - WARN_ONCE(1, "not implemented"); return ERR_PTR(-ENOSYS); } -void *qxl_gem_prime_vmap(struct drm_gem_object *obj) +int qxl_gem_prime_vmap(struct drm_gem_object *obj, struct iosys_map *map) { - WARN_ONCE(1, "not implemented"); - return ERR_PTR(-ENOSYS); -} + struct qxl_bo *bo = gem_to_qxl_bo(obj); + int ret; -void qxl_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr) -{ - WARN_ONCE(1, "not implemented"); + ret = qxl_bo_vmap_locked(bo, map); + if (ret < 0) + return ret; + + return 0; } -int qxl_gem_prime_mmap(struct drm_gem_object *obj, - struct vm_area_struct *area) +void qxl_gem_prime_vunmap(struct drm_gem_object *obj, + struct iosys_map *map) { - WARN_ONCE(1, "not implemented"); - return -ENOSYS; + struct qxl_bo *bo = gem_to_qxl_bo(obj); + + qxl_bo_vunmap_locked(bo); } |
