Lines Matching refs:lock
60 volatile unsigned int *lock = &lock_data->hw_lock->lock;
64 old = *lock;
72 prev = cmpxchg(lock, old, new);
109 volatile unsigned int *lock = &lock_data->hw_lock->lock;
113 old = *lock;
115 prev = cmpxchg(lock, old, new);
124 volatile unsigned int *lock = &lock_data->hw_lock->lock;
136 old = *lock;
138 prev = cmpxchg(lock, old, new);
167 struct drm_lock *lock = data; in drm_legacy_lock()
176 if (lock->context == DRM_KERNEL_CONTEXT) { in drm_legacy_lock()
178 task_pid_nr(current), lock->context); in drm_legacy_lock()
183 lock->context, task_pid_nr(current), in drm_legacy_lock()
184 master->lock.hw_lock ? master->lock.hw_lock->lock : -1, in drm_legacy_lock()
185 lock->flags); in drm_legacy_lock()
187 add_wait_queue(&master->lock.lock_queue, &entry); in drm_legacy_lock()
188 spin_lock_bh(&master->lock.spinlock); in drm_legacy_lock()
189 master->lock.user_waiters++; in drm_legacy_lock()
190 spin_unlock_bh(&master->lock.spinlock); in drm_legacy_lock()
194 if (!master->lock.hw_lock) { in drm_legacy_lock()
200 if (drm_lock_take(&master->lock, lock->context)) { in drm_legacy_lock()
201 master->lock.file_priv = file_priv; in drm_legacy_lock()
202 master->lock.lock_time = jiffies; in drm_legacy_lock()
215 spin_lock_bh(&master->lock.spinlock); in drm_legacy_lock()
216 master->lock.user_waiters--; in drm_legacy_lock()
217 spin_unlock_bh(&master->lock.spinlock); in drm_legacy_lock()
219 remove_wait_queue(&master->lock.lock_queue, &entry); in drm_legacy_lock()
221 DRM_DEBUG("%d %s\n", lock->context, in drm_legacy_lock()
229 dev->sigdata.context = lock->context; in drm_legacy_lock()
230 dev->sigdata.lock = master->lock.hw_lock; in drm_legacy_lock()
233 if (dev->driver->dma_quiescent && (lock->flags & _DRM_LOCK_QUIESCENT)) in drm_legacy_lock()
237 lock->context); in drm_legacy_lock()
260 struct drm_lock *lock = data; in drm_legacy_unlock()
266 if (lock->context == DRM_KERNEL_CONTEXT) { in drm_legacy_unlock()
268 task_pid_nr(current), lock->context); in drm_legacy_unlock()
272 if (drm_legacy_lock_free(&master->lock, lock->context)) { in drm_legacy_unlock()
316 volatile unsigned int *lock = &lock_data->hw_lock->lock;
322 old = *lock;
323 prev = cmpxchg(lock, old, DRM_KERNEL_CONTEXT);
337 return (file_priv->lock_count && master->lock.hw_lock &&
338 _DRM_LOCK_IS_HELD(master->lock.hw_lock->lock) &&
339 master->lock.file_priv == file_priv);
354 filp, _DRM_LOCKING_CONTEXT(file_priv->master->lock.hw_lock->lock)); in drm_legacy_lock_release()
355 drm_legacy_lock_free(&file_priv->master->lock, in drm_legacy_lock_release()
356 _DRM_LOCKING_CONTEXT(file_priv->master->lock.hw_lock->lock)); in drm_legacy_lock_release()