search for: drm_gem_object_get

Displaying 20 results from an estimated 55 matches for "drm_gem_object_get".

2019 Jun 18
1
[PATCH v2 08/12] drm/virtio: rework virtio_gpu_object_create fencing
...struct drm_gem_object *obj = &bo->gem_base; struct ww_acquire_ctx ticket; unsigned long irq_flags; - bool signaled; - INIT_LIST_HEAD(&validate_list); - memset(&mainbuf, 0, sizeof(struct ttm_validate_buffer)); - - /* use a gem reference since unref list undoes them */ - drm_gem_object_get(&bo->gem_base); - mainbuf.bo = &bo->tbo; - list_add(&mainbuf.head, &validate_list); - - ret = virtio_gpu_object_list_validate(&ticket, &validate_list); + drm_gem_object_get(obj); + ret = drm_gem_lock_reservations(&obj, 1, &ticket); if (ret == 0) { s...
2019 Jun 20
0
[PATCH 3/6] drm/qxl: use embedded gem object
...d(&qdev->primary_bo->tbo.base); qdev->primary_bo = NULL; } @@ -402,7 +402,7 @@ void qxl_io_create_primary(struct qxl_device *qdev, struct qxl_bo *bo) wait_for_io_cmd(qdev, 0, QXL_IO_CREATE_PRIMARY_ASYNC); qdev->primary_bo = bo; qdev->primary_bo->is_primary = true; - drm_gem_object_get(&qdev->primary_bo->gem_base); + drm_gem_object_get(&qdev->primary_bo->tbo.base); } void qxl_io_memslot_add(struct qxl_device *qdev, uint8_t id) diff --git a/drivers/gpu/drm/qxl/qxl_debugfs.c b/drivers/gpu/drm/qxl/qxl_debugfs.c index 118422549828..013b938986c7 100644 --- a/dr...
2019 Jun 21
0
[PATCH v2 03/18] drm/qxl: use embedded gem object
...d(&qdev->primary_bo->tbo.base); qdev->primary_bo = NULL; } @@ -402,7 +402,7 @@ void qxl_io_create_primary(struct qxl_device *qdev, struct qxl_bo *bo) wait_for_io_cmd(qdev, 0, QXL_IO_CREATE_PRIMARY_ASYNC); qdev->primary_bo = bo; qdev->primary_bo->is_primary = true; - drm_gem_object_get(&qdev->primary_bo->gem_base); + drm_gem_object_get(&qdev->primary_bo->tbo.base); } void qxl_io_memslot_add(struct qxl_device *qdev, uint8_t id) diff --git a/drivers/gpu/drm/qxl/qxl_debugfs.c b/drivers/gpu/drm/qxl/qxl_debugfs.c index 118422549828..013b938986c7 100644 --- a/dr...
2019 Jun 28
0
[PATCH v3 03/18] drm/qxl: use embedded gem object
...d(&qdev->primary_bo->tbo.base); qdev->primary_bo = NULL; } @@ -402,7 +402,7 @@ void qxl_io_create_primary(struct qxl_device *qdev, struct qxl_bo *bo) wait_for_io_cmd(qdev, 0, QXL_IO_CREATE_PRIMARY_ASYNC); qdev->primary_bo = bo; qdev->primary_bo->is_primary = true; - drm_gem_object_get(&qdev->primary_bo->gem_base); + drm_gem_object_get(&qdev->primary_bo->tbo.base); } void qxl_io_memslot_add(struct qxl_device *qdev, uint8_t id) diff --git a/drivers/gpu/drm/qxl/qxl_debugfs.c b/drivers/gpu/drm/qxl/qxl_debugfs.c index 118422549828..013b938986c7 100644 --- a/dr...
2019 Aug 02
0
[PATCH v4 03/17] drm/qxl: use embedded gem object
...d(&qdev->primary_bo->tbo.base); qdev->primary_bo = NULL; } @@ -404,7 +404,7 @@ void qxl_io_create_primary(struct qxl_device *qdev, struct qxl_bo *bo) wait_for_io_cmd(qdev, 0, QXL_IO_CREATE_PRIMARY_ASYNC); qdev->primary_bo = bo; qdev->primary_bo->is_primary = true; - drm_gem_object_get(&qdev->primary_bo->gem_base); + drm_gem_object_get(&qdev->primary_bo->tbo.base); } void qxl_io_memslot_add(struct qxl_device *qdev, uint8_t id) diff --git a/drivers/gpu/drm/qxl/qxl_debugfs.c b/drivers/gpu/drm/qxl/qxl_debugfs.c index a85ec100b0cc..bdb5ac0987ab 100644 --- a/dr...
2019 Aug 05
0
[PATCH v5 03/18] drm/qxl: use embedded gem object
...d(&qdev->primary_bo->tbo.base); qdev->primary_bo = NULL; } @@ -404,7 +404,7 @@ void qxl_io_create_primary(struct qxl_device *qdev, struct qxl_bo *bo) wait_for_io_cmd(qdev, 0, QXL_IO_CREATE_PRIMARY_ASYNC); qdev->primary_bo = bo; qdev->primary_bo->is_primary = true; - drm_gem_object_get(&qdev->primary_bo->gem_base); + drm_gem_object_get(&qdev->primary_bo->tbo.base); } void qxl_io_memslot_add(struct qxl_device *qdev, uint8_t id) diff --git a/drivers/gpu/drm/qxl/qxl_debugfs.c b/drivers/gpu/drm/qxl/qxl_debugfs.c index a85ec100b0cc..bdb5ac0987ab 100644 --- a/dr...
2019 Aug 05
0
[PATCH v6 03/17] drm/qxl: use embedded gem object
...d(&qdev->primary_bo->tbo.base); qdev->primary_bo = NULL; } @@ -404,7 +404,7 @@ void qxl_io_create_primary(struct qxl_device *qdev, struct qxl_bo *bo) wait_for_io_cmd(qdev, 0, QXL_IO_CREATE_PRIMARY_ASYNC); qdev->primary_bo = bo; qdev->primary_bo->is_primary = true; - drm_gem_object_get(&qdev->primary_bo->gem_base); + drm_gem_object_get(&qdev->primary_bo->tbo.base); } void qxl_io_memslot_add(struct qxl_device *qdev, uint8_t id) diff --git a/drivers/gpu/drm/qxl/qxl_debugfs.c b/drivers/gpu/drm/qxl/qxl_debugfs.c index a85ec100b0cc..bdb5ac0987ab 100644 --- a/dr...
2019 Jun 28
1
[PATCH v5 09/12] drm/virtio: rework virtio_gpu_object_create fencing
...u_object *bo; + struct ww_acquire_ctx ticket; size_t acc_size; int ret; @@ -123,12 +125,29 @@ int virtio_gpu_object_create(struct virtio_gpu_device *vgdev, } bo->dumb = params->dumb; + if (fence) { + objs = virtio_gpu_array_alloc(1); + objs->objs[0] = &bo->gem_base; + drm_gem_object_get(objs->objs[0]); + + ret = drm_gem_lock_reservations(objs->objs, objs->nents, + &ticket); + if (ret == 0) + reservation_object_add_excl_fence(objs->objs[0]->resv, + &fence->f); + } + if (params->virgl) { - virtio_gpu_cmd_resource_create_3d(vgdev, bo,...
2019 Jun 20
1
[PATCH v4 09/12] drm/virtio: rework virtio_gpu_object_create fencing
..._object *bo; size_t acc_size; int ret; @@ -123,10 +124,27 @@ int virtio_gpu_object_create(struct virtio_gpu_device *vgdev, } bo->dumb = params->dumb; + if (fence) { + struct ww_acquire_ctx ticket; + + objs = virtio_gpu_array_alloc(1); + objs->objs[0] = &bo->gem_base; + drm_gem_object_get(objs->objs[0]); + + ret = drm_gem_lock_reservations(objs->objs, objs->nents, + &ticket); + if (ret == 0) + reservation_object_add_excl_fence(objs->objs[0]->resv, + &fence->f); + drm_gem_unlock_reservations(objs->objs, objs->nents, &ticket); + }...
2019 Jun 19
0
[PATCH v3 09/12] drm/virtio: rework virtio_gpu_object_create fencing
...*objs = NULL; size_t acc_size; int ret; @@ -123,10 +124,27 @@ int virtio_gpu_object_create(struct virtio_gpu_device *vgdev, } bo->dumb = params->dumb; + if (fence) { + struct ww_acquire_ctx ticket; + + objs = drm_gem_array_alloc(1); + objs->objs[0] = &bo->gem_base; + drm_gem_object_get(objs->objs[0]); + + ret = drm_gem_lock_reservations(objs->objs, objs->nents, + &ticket); + if (ret == 0) + reservation_object_add_excl_fence(objs->objs[0]->resv, + &fence->f); + drm_gem_unlock_reservations(objs->objs, objs->nents, &ticket); + }...
2018 Mar 21
0
[Outreachy kernel] [PATCH] drm/qxl: Replace drm_gem_object_reference/unreference() with _get/put()
...drm_gem_object_reference/unreference function with *_get/put() > suffixes, because it is shorter and consistent with the kernel > kref_get/put() functions. The following Coccinelle script was used: > > @@ > expression e; > @@ > > ( > -drm_gem_object_reference(e); > +drm_gem_object_get(e); > | > -drm_gem_object_unreference(e); > +drm_gem_object_put(e); > | > -drm_gem_object_unreference_unlocked(e); > +drm_gem_object_put_unlocked(e); > ) > > Signed-off-by: Santha Meena Ramamoorthy <santhameena13 at gmail.com> lgtm, thanks for your patch. Applied...
2019 Jul 02
3
[PATCH v6 07/18] drm/virtio: add virtio_gpu_object_array & helpers
...->objs[i]) { + virtio_gpu_array_put_free(objs); + return NULL; + } + } + objs->nents = i; + return objs; +} + +void virtio_gpu_array_add_obj(struct virtio_gpu_object_array *objs, + struct drm_gem_object *obj) +{ + if (WARN_ON_ONCE(objs->nents == objs->total)) + return; + + drm_gem_object_get(obj); + objs->objs[objs->nents] = obj; + objs->nents++; +} + +int virtio_gpu_array_lock_resv(struct virtio_gpu_object_array *objs) +{ + return drm_gem_lock_reservations(objs->objs, objs->nents, + &objs->ticket); +} + +void virtio_gpu_array_unlock_resv(struct virtio_gpu_ob...
2019 Jul 02
3
[PATCH v6 07/18] drm/virtio: add virtio_gpu_object_array & helpers
...->objs[i]) { + virtio_gpu_array_put_free(objs); + return NULL; + } + } + objs->nents = i; + return objs; +} + +void virtio_gpu_array_add_obj(struct virtio_gpu_object_array *objs, + struct drm_gem_object *obj) +{ + if (WARN_ON_ONCE(objs->nents == objs->total)) + return; + + drm_gem_object_get(obj); + objs->objs[objs->nents] = obj; + objs->nents++; +} + +int virtio_gpu_array_lock_resv(struct virtio_gpu_object_array *objs) +{ + return drm_gem_lock_reservations(objs->objs, objs->nents, + &objs->ticket); +} + +void virtio_gpu_array_unlock_resv(struct virtio_gpu_ob...
2023 Feb 14
3
[PATCH] drm/gem: Expose the buffer object handle to userspace last
...c +++ b/drivers/gpu/drm/drm_gem.c @@ -356,52 +356,52 @@ drm_gem_handle_create_tail(struct drm_file *file_priv, u32 *handlep) { struct drm_device *dev = obj->dev; - u32 handle; int ret; WARN_ON(!mutex_is_locked(&dev->object_name_lock)); if (obj->handle_count++ == 0) drm_gem_object_get(obj); + ret = drm_vma_node_allow(&obj->vma_node, file_priv); + if (ret) + goto err_put; + + if (obj->funcs->open) { + ret = obj->funcs->open(obj, file_priv); + if (ret) + goto err_revoke; + } + /* - * Get the user-visible handle using idr. Preload and perform - * allo...
2023 Feb 14
3
[PATCH] drm/gem: Expose the buffer object handle to userspace last
...c +++ b/drivers/gpu/drm/drm_gem.c @@ -356,52 +356,52 @@ drm_gem_handle_create_tail(struct drm_file *file_priv, u32 *handlep) { struct drm_device *dev = obj->dev; - u32 handle; int ret; WARN_ON(!mutex_is_locked(&dev->object_name_lock)); if (obj->handle_count++ == 0) drm_gem_object_get(obj); + ret = drm_vma_node_allow(&obj->vma_node, file_priv); + if (ret) + goto err_put; + + if (obj->funcs->open) { + ret = obj->funcs->open(obj, file_priv); + if (ret) + goto err_revoke; + } + /* - * Get the user-visible handle using idr. Preload and perform - * allo...
2018 Nov 28
0
[PATCH 5/6] drm/qxl: cover all crtcs in shadow bo.
...->src_y && - plane->state->src_w == new_state->src_w && - plane->state->src_h == new_state->src_h && - plane->state->rotation == new_state->rotation && - plane->state->zpos == new_state->zpos) { - drm_gem_object_get(&old_bo->shadow->gem_base); - user_bo->shadow = old_bo->shadow; - } else { - qxl_bo_create(qdev, user_bo->gem_base.size, + user_bo->is_dumb) { + qxl_update_dumb_head(qdev, new_state->crtc->index, + user_bo); + qxl_calc_dumb_shadow(qdev, &surf); +...
2018 Dec 12
0
[PATCH v2 14/18] drm/qxl: cover all crtcs in shadow bo.
...->src_y && - plane->state->src_w == new_state->src_w && - plane->state->src_h == new_state->src_h && - plane->state->rotation == new_state->rotation && - plane->state->zpos == new_state->zpos) { - drm_gem_object_get(&old_bo->shadow->gem_base); - user_bo->shadow = old_bo->shadow; - } else { - qxl_bo_create(qdev, user_bo->gem_base.size, + user_bo->is_dumb) { + qxl_update_dumb_head(qdev, new_state->crtc->index, + user_bo); + qxl_calc_dumb_shadow(qdev, &surf); +...
2023 Feb 20
2
[PATCH] drm/gem: Expose the buffer object handle to userspace last
...iv, >> ???????????????? u32 *handlep) >> ? { >> ????? struct drm_device *dev = obj->dev; >> -??? u32 handle; >> ????? int ret; >> ????? WARN_ON(!mutex_is_locked(&dev->object_name_lock)); >> ????? if (obj->handle_count++ == 0) >> ????????? drm_gem_object_get(obj); >> +??? ret = drm_vma_node_allow(&obj->vma_node, file_priv); >> +??? if (ret) >> +??????? goto err_put; >> + >> +??? if (obj->funcs->open) { >> +??????? ret = obj->funcs->open(obj, file_priv); >> +??????? if (ret) >> +????????...
2023 Feb 20
2
[PATCH] drm/gem: Expose the buffer object handle to userspace last
...iv, >> ???????????????? u32 *handlep) >> ? { >> ????? struct drm_device *dev = obj->dev; >> -??? u32 handle; >> ????? int ret; >> ????? WARN_ON(!mutex_is_locked(&dev->object_name_lock)); >> ????? if (obj->handle_count++ == 0) >> ????????? drm_gem_object_get(obj); >> +??? ret = drm_vma_node_allow(&obj->vma_node, file_priv); >> +??? if (ret) >> +??????? goto err_put; >> + >> +??? if (obj->funcs->open) { >> +??????? ret = obj->funcs->open(obj, file_priv); >> +??????? if (ret) >> +????????...
2019 Jul 02
2
[PATCH v6 16/18] drm/virtio: rework virtio_gpu_cmd_context_{attach, detach}_resource
Switch to the virtio_gpu_array_* helper workflow. Signed-off-by: Gerd Hoffmann <kraxel at redhat.com> --- drivers/gpu/drm/virtio/virtgpu_drv.h | 4 ++-- drivers/gpu/drm/virtio/virtgpu_gem.c | 24 +++++++++++------------- drivers/gpu/drm/virtio/virtgpu_vq.c | 10 ++++++---- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.h