Lines Matching refs:lock

317 		struct drm_modeset_lock *lock;  in drm_modeset_drop_locks()  local
319 lock = list_first_entry(&ctx->locked, in drm_modeset_drop_locks()
322 drm_modeset_unlock(lock); in drm_modeset_drop_locks()
327 static inline int modeset_lock(struct drm_modeset_lock *lock, in modeset_lock() argument
336 if (!ww_mutex_trylock(&lock->mutex)) in modeset_lock()
341 ret = ww_mutex_lock_slow_interruptible(&lock->mutex, &ctx->ww_ctx); in modeset_lock()
343 ret = ww_mutex_lock_interruptible(&lock->mutex, &ctx->ww_ctx); in modeset_lock()
345 ww_mutex_lock_slow(&lock->mutex, &ctx->ww_ctx); in modeset_lock()
348 ret = ww_mutex_lock(&lock->mutex, &ctx->ww_ctx); in modeset_lock()
351 WARN_ON(!list_empty(&lock->head)); in modeset_lock()
352 list_add(&lock->head, &ctx->locked); in modeset_lock()
361 ctx->contended = lock; in modeset_lock()
419 int drm_modeset_lock(struct drm_modeset_lock *lock, in drm_modeset_lock() argument
423 return modeset_lock(lock, ctx, false, false); in drm_modeset_lock()
425 ww_mutex_lock(&lock->mutex, NULL); in drm_modeset_lock()
437 int drm_modeset_lock_interruptible(struct drm_modeset_lock *lock, in drm_modeset_lock_interruptible() argument
441 return modeset_lock(lock, ctx, true, false); in drm_modeset_lock_interruptible()
443 return ww_mutex_lock_interruptible(&lock->mutex, NULL); in drm_modeset_lock_interruptible()
451 void drm_modeset_unlock(struct drm_modeset_lock *lock) in drm_modeset_unlock() argument
453 list_del_init(&lock->head); in drm_modeset_unlock()
454 ww_mutex_unlock(&lock->mutex); in drm_modeset_unlock()