Lines Matching refs:lock
60 struct drm_lock *lock = data; in drm_lock() local
66 if (lock->context == DRM_KERNEL_CONTEXT) { in drm_lock()
68 DRM_CURRENTPID, lock->context); in drm_lock()
73 lock->context, DRM_CURRENTPID, in drm_lock()
74 master->lock.hw_lock->lock, lock->flags); in drm_lock()
76 mtx_lock(&master->lock.spinlock); in drm_lock()
77 master->lock.user_waiters++; in drm_lock()
78 mtx_unlock(&master->lock.spinlock); in drm_lock()
82 if (!master->lock.hw_lock) { in drm_lock()
89 if (drm_lock_take(&master->lock, lock->context)) { in drm_lock()
90 master->lock.file_priv = file_priv; in drm_lock()
91 master->lock.lock_time = jiffies; in drm_lock()
98 ret = -sx_sleep(&master->lock.lock_queue, &drm_global_mutex, in drm_lock()
105 mtx_lock(&master->lock.spinlock); in drm_lock()
106 master->lock.user_waiters--; in drm_lock()
107 mtx_unlock(&master->lock.spinlock); in drm_lock()
109 DRM_DEBUG("%d %s\n", lock->context, in drm_lock()
123 dev->sigdata.context = lock->context; in drm_lock()
124 dev->sigdata.lock = master->lock.hw_lock; in drm_lock()
129 if (dev->driver->dma_quiescent && (lock->flags & _DRM_LOCK_QUIESCENT)) in drm_lock()
133 lock->context); in drm_lock()
154 struct drm_lock *lock = data; in drm_unlock() local
157 if (lock->context == DRM_KERNEL_CONTEXT) { in drm_unlock()
159 DRM_CURRENTPID, lock->context); in drm_unlock()
165 if (drm_lock_free(&master->lock, lock->context)) { in drm_unlock()
189 volatile unsigned int *lock = &lock_data->hw_lock->lock; in drm_lock_take() local
193 old = *lock; in drm_lock_take()
201 prev = cmpxchg(lock, old, new); in drm_lock_take()
238 volatile unsigned int *lock = &lock_data->hw_lock->lock; in drm_lock_transfer() local
242 old = *lock; in drm_lock_transfer()
244 prev = cmpxchg(lock, old, new); in drm_lock_transfer()
263 volatile unsigned int *lock = &lock_data->hw_lock->lock; in drm_lock_free() local
275 old = *lock; in drm_lock_free()
277 prev = cmpxchg(lock, old, new); in drm_lock_free()
307 if (!s->lock || !_DRM_LOCK_IS_HELD(s->lock->lock) in drm_notifier()
308 || _DRM_LOCKING_CONTEXT(s->lock->lock) != s->context) in drm_notifier()
314 old = s->lock->lock; in drm_notifier()
316 prev = cmpxchg(&s->lock->lock, old, new); in drm_notifier()
357 volatile unsigned int *lock = &lock_data->hw_lock->lock; in drm_idlelock_release() local
363 old = *lock; in drm_idlelock_release()
364 prev = cmpxchg(lock, old, DRM_KERNEL_CONTEXT); in drm_idlelock_release()
377 return (file_priv->lock_count && master->lock.hw_lock && in drm_i_have_hw_lock()
378 _DRM_LOCK_IS_HELD(master->lock.hw_lock->lock) && in drm_i_have_hw_lock()
379 master->lock.file_priv == file_priv); in drm_i_have_hw_lock()