• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/drivers/gpu/drm/

Lines Matching refs:lock_data

195 int drm_lock_take(struct drm_lock_data *lock_data,
199 volatile unsigned int *lock = &lock_data->hw_lock->lock;
201 spin_lock_bh(&lock_data->spinlock);
208 ((lock_data->user_waiters + lock_data->kernel_waiters > 1) ?
213 spin_unlock_bh(&lock_data->spinlock);
245 static int drm_lock_transfer(struct drm_lock_data *lock_data,
249 volatile unsigned int *lock = &lock_data->hw_lock->lock;
251 lock_data->file_priv = NULL;
271 int drm_lock_free(struct drm_lock_data *lock_data, unsigned int context)
274 volatile unsigned int *lock = &lock_data->hw_lock->lock;
276 spin_lock_bh(&lock_data->spinlock);
277 if (lock_data->kernel_waiters != 0) {
278 drm_lock_transfer(lock_data, 0);
279 lock_data->idle_has_lock = 1;
280 spin_unlock_bh(&lock_data->spinlock);
283 spin_unlock_bh(&lock_data->spinlock);
296 wake_up_interruptible(&lock_data->lock_queue);
345 void drm_idlelock_take(struct drm_lock_data *lock_data)
349 spin_lock_bh(&lock_data->spinlock);
350 lock_data->kernel_waiters++;
351 if (!lock_data->idle_has_lock) {
353 spin_unlock_bh(&lock_data->spinlock);
354 ret = drm_lock_take(lock_data, DRM_KERNEL_CONTEXT);
355 spin_lock_bh(&lock_data->spinlock);
358 lock_data->idle_has_lock = 1;
360 spin_unlock_bh(&lock_data->spinlock);
364 void drm_idlelock_release(struct drm_lock_data *lock_data)
367 volatile unsigned int *lock = &lock_data->hw_lock->lock;
369 spin_lock_bh(&lock_data->spinlock);
370 if (--lock_data->kernel_waiters == 0) {
371 if (lock_data->idle_has_lock) {
376 wake_up_interruptible(&lock_data->lock_queue);
377 lock_data->idle_has_lock = 0;
380 spin_unlock_bh(&lock_data->spinlock);