Lines Matching refs:lock

58 	struct drm_lock *lock = data;  in drm_lock()  local
64 if (lock->context == DRM_KERNEL_CONTEXT) { in drm_lock()
66 DRM_CURRENTPID, lock->context); in drm_lock()
71 lock->context, DRM_CURRENTPID, in drm_lock()
72 master->lock.hw_lock->lock, lock->flags); in drm_lock()
74 mtx_lock(&master->lock.spinlock); in drm_lock()
75 master->lock.user_waiters++; in drm_lock()
76 mtx_unlock(&master->lock.spinlock); in drm_lock()
80 if (!master->lock.hw_lock) { in drm_lock()
87 if (drm_lock_take(&master->lock, lock->context)) { in drm_lock()
88 master->lock.file_priv = file_priv; in drm_lock()
89 master->lock.lock_time = jiffies; in drm_lock()
96 ret = -sx_sleep(&master->lock.lock_queue, &drm_global_mutex, in drm_lock()
103 mtx_lock(&master->lock.spinlock); in drm_lock()
104 master->lock.user_waiters--; in drm_lock()
105 mtx_unlock(&master->lock.spinlock); in drm_lock()
107 DRM_DEBUG("%d %s\n", lock->context, in drm_lock()
121 dev->sigdata.context = lock->context; in drm_lock()
122 dev->sigdata.lock = master->lock.hw_lock; in drm_lock()
127 if (dev->driver->dma_quiescent && (lock->flags & _DRM_LOCK_QUIESCENT)) in drm_lock()
131 lock->context); in drm_lock()
152 struct drm_lock *lock = data; in drm_unlock() local
155 if (lock->context == DRM_KERNEL_CONTEXT) { in drm_unlock()
157 DRM_CURRENTPID, lock->context); in drm_unlock()
163 if (drm_lock_free(&master->lock, lock->context)) { in drm_unlock()
187 volatile unsigned int *lock = &lock_data->hw_lock->lock; in drm_lock_take() local
191 old = *lock; in drm_lock_take()
199 prev = cmpxchg(lock, old, new); in drm_lock_take()
236 volatile unsigned int *lock = &lock_data->hw_lock->lock; in drm_lock_transfer() local
240 old = *lock; in drm_lock_transfer()
242 prev = cmpxchg(lock, old, new); in drm_lock_transfer()
261 volatile unsigned int *lock = &lock_data->hw_lock->lock; in drm_lock_free() local
273 old = *lock; in drm_lock_free()
275 prev = cmpxchg(lock, old, new); in drm_lock_free()
305 if (!s->lock || !_DRM_LOCK_IS_HELD(s->lock->lock) in drm_notifier()
306 || _DRM_LOCKING_CONTEXT(s->lock->lock) != s->context) in drm_notifier()
312 old = s->lock->lock; in drm_notifier()
314 prev = cmpxchg(&s->lock->lock, old, new); in drm_notifier()
355 volatile unsigned int *lock = &lock_data->hw_lock->lock; in drm_idlelock_release() local
361 old = *lock; in drm_idlelock_release()
362 prev = cmpxchg(lock, old, DRM_KERNEL_CONTEXT); in drm_idlelock_release()
375 return (file_priv->lock_count && master->lock.hw_lock && in drm_i_have_hw_lock()
376 _DRM_LOCK_IS_HELD(master->lock.hw_lock->lock) && in drm_i_have_hw_lock()
377 master->lock.file_priv == file_priv); in drm_i_have_hw_lock()