Lines Matching refs:lock

60 	struct drm_lock *lock = data;  in drm_legacy_lock()  local
69 if (lock->context == DRM_KERNEL_CONTEXT) { in drm_legacy_lock()
71 task_pid_nr(current), lock->context); in drm_legacy_lock()
76 lock->context, task_pid_nr(current), in drm_legacy_lock()
77 master->lock.hw_lock->lock, lock->flags); in drm_legacy_lock()
79 add_wait_queue(&master->lock.lock_queue, &entry); in drm_legacy_lock()
80 spin_lock_bh(&master->lock.spinlock); in drm_legacy_lock()
81 master->lock.user_waiters++; in drm_legacy_lock()
82 spin_unlock_bh(&master->lock.spinlock); in drm_legacy_lock()
86 if (!master->lock.hw_lock) { in drm_legacy_lock()
92 if (drm_lock_take(&master->lock, lock->context)) { in drm_legacy_lock()
93 master->lock.file_priv = file_priv; in drm_legacy_lock()
94 master->lock.lock_time = jiffies; in drm_legacy_lock()
107 spin_lock_bh(&master->lock.spinlock); in drm_legacy_lock()
108 master->lock.user_waiters--; in drm_legacy_lock()
109 spin_unlock_bh(&master->lock.spinlock); in drm_legacy_lock()
111 remove_wait_queue(&master->lock.lock_queue, &entry); in drm_legacy_lock()
113 DRM_DEBUG("%d %s\n", lock->context, in drm_legacy_lock()
126 dev->sigdata.context = lock->context; in drm_legacy_lock()
127 dev->sigdata.lock = master->lock.hw_lock; in drm_legacy_lock()
131 if (dev->driver->dma_quiescent && (lock->flags & _DRM_LOCK_QUIESCENT)) in drm_legacy_lock()
135 lock->context); in drm_legacy_lock()
156 struct drm_lock *lock = data; in drm_legacy_unlock() local
162 if (lock->context == DRM_KERNEL_CONTEXT) { in drm_legacy_unlock()
164 task_pid_nr(current), lock->context); in drm_legacy_unlock()
168 if (drm_legacy_lock_free(&master->lock, lock->context)) { in drm_legacy_unlock()
190 volatile unsigned int *lock = &lock_data->hw_lock->lock; in drm_lock_take() local
194 old = *lock; in drm_lock_take()
202 prev = cmpxchg(lock, old, new); in drm_lock_take()
239 volatile unsigned int *lock = &lock_data->hw_lock->lock; in drm_lock_transfer() local
243 old = *lock; in drm_lock_transfer()
245 prev = cmpxchg(lock, old, new); in drm_lock_transfer()
264 volatile unsigned int *lock = &lock_data->hw_lock->lock; in drm_legacy_lock_free() local
276 old = *lock; in drm_legacy_lock_free()
278 prev = cmpxchg(lock, old, new); in drm_legacy_lock_free()
304 struct drm_hw_lock *lock = dev->sigdata.lock; in drm_notifier() local
308 if (!lock || !_DRM_LOCK_IS_HELD(lock->lock) in drm_notifier()
309 || _DRM_LOCKING_CONTEXT(lock->lock) != dev->sigdata.context) in drm_notifier()
315 old = lock->lock; in drm_notifier()
317 prev = cmpxchg(&lock->lock, old, new); in drm_notifier()
357 volatile unsigned int *lock = &lock_data->hw_lock->lock; in drm_legacy_idlelock_release() local
363 old = *lock; in drm_legacy_idlelock_release()
364 prev = cmpxchg(lock, old, DRM_KERNEL_CONTEXT); in drm_legacy_idlelock_release()
378 return (file_priv->lock_count && master->lock.hw_lock && in drm_legacy_i_have_hw_lock()
379 _DRM_LOCK_IS_HELD(master->lock.hw_lock->lock) && in drm_legacy_i_have_hw_lock()
380 master->lock.file_priv == file_priv); in drm_legacy_i_have_hw_lock()