OSDN Git Service

drm/etnaviv: Use dma_resv locking wrappers
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Sat, 14 Dec 2019 00:09:27 +0000 (01:09 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 17 Dec 2019 16:26:08 +0000 (17:26 +0100)
I'll add more fancy logic to them soon, so everyone really has to use
them. Plus they already provide some nice additional debug
infrastructure on top of direct ww_mutex usage for the fences tracked
by dma_resv.

v2: Fix the lost _interruptible (Michael)

Acked-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Lucas Stach <l.stach@pengutronix.de>
Cc: Russell King <linux+etnaviv@armlinux.org.uk>
Cc: Christian Gmeiner <christian.gmeiner@gmail.com>
Cc: etnaviv@lists.freedesktop.org
Cc: "Ruhl, Michael J" <michael.j.ruhl@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191214000927.1616384-1-daniel.vetter@ffwll.ch
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c

index aa3e4c3..3b0afa1 100644 (file)
@@ -113,7 +113,7 @@ static void submit_unlock_object(struct etnaviv_gem_submit *submit, int i)
        if (submit->bos[i].flags & BO_LOCKED) {
                struct drm_gem_object *obj = &submit->bos[i].obj->base;
 
-               ww_mutex_unlock(&obj->resv->lock);
+               dma_resv_unlock(obj->resv);
                submit->bos[i].flags &= ~BO_LOCKED;
        }
 }
@@ -133,8 +133,7 @@ retry:
                contended = i;
 
                if (!(submit->bos[i].flags & BO_LOCKED)) {
-                       ret = ww_mutex_lock_interruptible(&obj->resv->lock,
-                                                         ticket);
+                       ret = dma_resv_lock_interruptible(obj->resv, ticket);
                        if (ret == -EALREADY)
                                DRM_ERROR("BO at index %u already on submit list\n",
                                          i);
@@ -161,8 +160,7 @@ fail:
                obj = &submit->bos[contended].obj->base;
 
                /* we lost out in a seqno race, lock and retry.. */
-               ret = ww_mutex_lock_slow_interruptible(&obj->resv->lock,
-                                                      ticket);
+               ret = dma_resv_lock_slow_interruptible(obj->resv, ticket);
                if (!ret) {
                        submit->bos[contended].flags |= BO_LOCKED;
                        slow_locked = contended;