Lines Matching defs:lock
45 * foreach (lock in random_ordered_set_of_locks) {
46 * ret = drm_modeset_lock(lock, ctx)
64 * If all that is needed is a single modeset lock, then the &struct
88 * This function is deprecated. It allocates a lock acquisition context and
142 * This function is deprecated. It uses the lock acquisition context stored
230 struct drm_modeset_lock *lock;
232 lock = list_first_entry(&ctx->locked,
235 drm_modeset_unlock(lock);
240 static inline int modeset_lock(struct drm_modeset_lock *lock,
251 if (!ww_mutex_trylock(&lock->mutex))
256 ret = ww_mutex_lock_slow_interruptible(&lock->mutex, &ctx->ww_ctx);
258 ret = ww_mutex_lock_interruptible(&lock->mutex, &ctx->ww_ctx);
260 ww_mutex_lock_slow(&lock->mutex, &ctx->ww_ctx);
263 ret = ww_mutex_lock(&lock->mutex, &ctx->ww_ctx);
266 WARN_ON(!list_empty(&lock->head));
267 list_add(&lock->head, &ctx->locked);
269 /* we already hold the lock.. this is fine. For atomic
276 ctx->contended = lock;
288 * block until the contended lock becomes available.
310 * drm_modeset_lock_init - initialize lock
311 * @lock: lock to init
313 void drm_modeset_lock_init(struct drm_modeset_lock *lock)
315 ww_mutex_init(&lock->mutex, &crtc_ww_class);
316 INIT_LIST_HEAD(&lock->head);
321 * drm_modeset_lock - take modeset lock
322 * @lock: lock to take
326 * lock will be tracked by the context and can be released by calling
338 int drm_modeset_lock(struct drm_modeset_lock *lock,
342 return modeset_lock(lock, ctx, ctx->interruptible, false);
344 ww_mutex_lock(&lock->mutex, NULL);
350 * drm_modeset_lock_single_interruptible - take a single modeset lock
351 * @lock: lock to take
358 int drm_modeset_lock_single_interruptible(struct drm_modeset_lock *lock)
360 return ww_mutex_lock_interruptible(&lock->mutex, NULL);
365 * drm_modeset_unlock - drop modeset lock
366 * @lock: lock to release
368 void drm_modeset_unlock(struct drm_modeset_lock *lock)
370 list_del_init(&lock->head);
371 ww_mutex_unlock(&lock->mutex);
378 * @ctx: lock acquisition context
384 * since that lock isn't required for modeset state changes. Callers which
385 * need to grab that lock too need to do so outside of the acquire context
420 ret = drm_modeset_lock(&privobj->lock, ctx);