Lines Matching refs:lock
58 struct drm_lock *lock = data; in drm_legacy_lock() local
67 if (lock->context == DRM_KERNEL_CONTEXT) { in drm_legacy_lock()
69 task_pid_nr(current), lock->context); in drm_legacy_lock()
74 lock->context, task_pid_nr(current), in drm_legacy_lock()
75 master->lock.hw_lock->lock, lock->flags); in drm_legacy_lock()
77 add_wait_queue(&master->lock.lock_queue, &entry); in drm_legacy_lock()
78 spin_lock_bh(&master->lock.spinlock); in drm_legacy_lock()
79 master->lock.user_waiters++; in drm_legacy_lock()
80 spin_unlock_bh(&master->lock.spinlock); in drm_legacy_lock()
84 if (!master->lock.hw_lock) { in drm_legacy_lock()
90 if (drm_lock_take(&master->lock, lock->context)) { in drm_legacy_lock()
91 master->lock.file_priv = file_priv; in drm_legacy_lock()
92 master->lock.lock_time = jiffies; in drm_legacy_lock()
105 spin_lock_bh(&master->lock.spinlock); in drm_legacy_lock()
106 master->lock.user_waiters--; in drm_legacy_lock()
107 spin_unlock_bh(&master->lock.spinlock); in drm_legacy_lock()
109 remove_wait_queue(&master->lock.lock_queue, &entry); in drm_legacy_lock()
111 DRM_DEBUG("%d %s\n", lock->context, in drm_legacy_lock()
119 dev->sigdata.context = lock->context; in drm_legacy_lock()
120 dev->sigdata.lock = master->lock.hw_lock; in drm_legacy_lock()
123 if (dev->driver->dma_quiescent && (lock->flags & _DRM_LOCK_QUIESCENT)) in drm_legacy_lock()
127 lock->context); in drm_legacy_lock()
148 struct drm_lock *lock = data; in drm_legacy_unlock() local
154 if (lock->context == DRM_KERNEL_CONTEXT) { in drm_legacy_unlock()
156 task_pid_nr(current), lock->context); in drm_legacy_unlock()
160 if (drm_legacy_lock_free(&master->lock, lock->context)) { in drm_legacy_unlock()
181 volatile unsigned int *lock = &lock_data->hw_lock->lock; in drm_lock_take() local
185 old = *lock; in drm_lock_take()
193 prev = cmpxchg(lock, old, new); in drm_lock_take()
230 volatile unsigned int *lock = &lock_data->hw_lock->lock; in drm_lock_transfer() local
234 old = *lock; in drm_lock_transfer()
236 prev = cmpxchg(lock, old, new); in drm_lock_transfer()
255 volatile unsigned int *lock = &lock_data->hw_lock->lock; in drm_legacy_lock_free() local
267 old = *lock; in drm_legacy_lock_free()
269 prev = cmpxchg(lock, old, new); in drm_legacy_lock_free()
316 volatile unsigned int *lock = &lock_data->hw_lock->lock; in drm_legacy_idlelock_release() local
322 old = *lock; in drm_legacy_idlelock_release()
323 prev = cmpxchg(lock, old, DRM_KERNEL_CONTEXT); in drm_legacy_idlelock_release()
337 return (file_priv->lock_count && master->lock.hw_lock && in drm_legacy_i_have_hw_lock()
338 _DRM_LOCK_IS_HELD(master->lock.hw_lock->lock) && in drm_legacy_i_have_hw_lock()
339 master->lock.file_priv == file_priv); in drm_legacy_i_have_hw_lock()