drm: vc4: Switch to use drm_gem_object reservation_object
Now that the base struct drm_gem_object has a reservation_object, use it and remove the private BO one. Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: dri-devel@lists.freedesktop.org Reviewed-by: Eric Anholt <eric@anholt.net> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Rob Herring <robh@kernel.org> Link: https://patchwork.freedesktop.org/patch/msgid/20190202154158.10443-6-robh@kernel.org Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
This commit is contained in:

committed by
Maxime Ripard

parent
8d66830976
commit
bd7de1e8d9
@@ -536,7 +536,7 @@ vc4_update_bo_seqnos(struct vc4_exec_info *exec, uint64_t seqno)
|
||||
bo = to_vc4_bo(&exec->bo[i]->base);
|
||||
bo->seqno = seqno;
|
||||
|
||||
reservation_object_add_shared_fence(bo->resv, exec->fence);
|
||||
reservation_object_add_shared_fence(bo->base.base.resv, exec->fence);
|
||||
}
|
||||
|
||||
list_for_each_entry(bo, &exec->unref_list, unref_head) {
|
||||
@@ -547,7 +547,7 @@ vc4_update_bo_seqnos(struct vc4_exec_info *exec, uint64_t seqno)
|
||||
bo = to_vc4_bo(&exec->rcl_write_bo[i]->base);
|
||||
bo->write_seqno = seqno;
|
||||
|
||||
reservation_object_add_excl_fence(bo->resv, exec->fence);
|
||||
reservation_object_add_excl_fence(bo->base.base.resv, exec->fence);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -559,7 +559,7 @@ vc4_unlock_bo_reservations(struct drm_device *dev,
|
||||
int i;
|
||||
|
||||
for (i = 0; i < exec->bo_count; i++) {
|
||||
struct vc4_bo *bo = to_vc4_bo(&exec->bo[i]->base);
|
||||
struct drm_gem_object *bo = &exec->bo[i]->base;
|
||||
|
||||
ww_mutex_unlock(&bo->resv->lock);
|
||||
}
|
||||
@@ -581,13 +581,13 @@ vc4_lock_bo_reservations(struct drm_device *dev,
|
||||
{
|
||||
int contended_lock = -1;
|
||||
int i, ret;
|
||||
struct vc4_bo *bo;
|
||||
struct drm_gem_object *bo;
|
||||
|
||||
ww_acquire_init(acquire_ctx, &reservation_ww_class);
|
||||
|
||||
retry:
|
||||
if (contended_lock != -1) {
|
||||
bo = to_vc4_bo(&exec->bo[contended_lock]->base);
|
||||
bo = &exec->bo[contended_lock]->base;
|
||||
ret = ww_mutex_lock_slow_interruptible(&bo->resv->lock,
|
||||
acquire_ctx);
|
||||
if (ret) {
|
||||
@@ -600,19 +600,19 @@ retry:
|
||||
if (i == contended_lock)
|
||||
continue;
|
||||
|
||||
bo = to_vc4_bo(&exec->bo[i]->base);
|
||||
bo = &exec->bo[i]->base;
|
||||
|
||||
ret = ww_mutex_lock_interruptible(&bo->resv->lock, acquire_ctx);
|
||||
if (ret) {
|
||||
int j;
|
||||
|
||||
for (j = 0; j < i; j++) {
|
||||
bo = to_vc4_bo(&exec->bo[j]->base);
|
||||
bo = &exec->bo[j]->base;
|
||||
ww_mutex_unlock(&bo->resv->lock);
|
||||
}
|
||||
|
||||
if (contended_lock != -1 && contended_lock >= i) {
|
||||
bo = to_vc4_bo(&exec->bo[contended_lock]->base);
|
||||
bo = &exec->bo[contended_lock]->base;
|
||||
|
||||
ww_mutex_unlock(&bo->resv->lock);
|
||||
}
|
||||
@@ -633,7 +633,7 @@ retry:
|
||||
* before we commit the CL to the hardware.
|
||||
*/
|
||||
for (i = 0; i < exec->bo_count; i++) {
|
||||
bo = to_vc4_bo(&exec->bo[i]->base);
|
||||
bo = &exec->bo[i]->base;
|
||||
|
||||
ret = reservation_object_reserve_shared(bo->resv, 1);
|
||||
if (ret) {
|
||||
|
Reference in New Issue
Block a user